全部文档

更新于 2026-10-28

部署

构建、托管、域名和分析设置。

构建

网站由 Next.js 在构建时生成静态 HTML:

pnpm build

Next.js 会在构建时预渲染主页、文档页面、站点地图和全部七个 locale 的静态 资源。但提供服务仍然需要一个运行时来执行 locale 协商边缘中间件 (apps/web/src/proxy.ts)和安全响应头,因此部署目标是启用 Next.js 预设的 Vercel;纯静态主机会失去 locale 协商。

托管

生产托管是 Vercel:

  • framework preset: Next.js
  • root directory: apps/web
  • build command: pnpm build

域名是 ella.yuricunha.com,配置在 apps/web/src/data/site.ts 和应用 元数据中,用于驱动规范 URL、Open Graph 和站点地图。

文档路由

  • /docs 可用文档页面的索引,按语言区分;
  • /docs/<slug> 单个文档页面,按语言区分。

两者都是构建时生成的静态路由。默认语言(英语)没有 URL 前缀;其他 语言带有自己的前缀,例如 /pt/docs 或 /ja/docs。

本地化路由

  • 默认英语:https://ella.yuricunha.com
  • 其他语言:https://ella.yuricunha.com/<locale>

每个页面都为全部七种语言声明 hreflang 备用链接,站点地图列出每个 变体。

分析

Umami 已准备好,但默认不生效。Analytics 组件只有在构建时存在两个 环境变量时才会渲染:

NEXT_PUBLIC_UMAMI_SRC=https://your-umami-host/script.js
NEXT_PUBLIC_UMAMI_WEBSITE_ID=your-website-id

没有它们,网站交付零分析 JavaScript。不会提交占位符 ID。

质量门

已没有 CI 服务器监视推送:GitLab 流水线已停用,GitLab 远端仅作镜像。推送前 请运行质量门:

pnpm type-check && pnpm lint && pnpm test && pnpm format:check && pnpm build

pnpm audit --prod 也必须干净通过。Vercel 在部署时构建生产包;页面已 预渲染,构建通过即是门。

SEO

  • 区域设置布局中的元数据、Open Graph、Twitter 卡片、规范链接和 JSON-LD;
  • robots.txt 和站点地图在构建中生成;
  • 社交卡片是 public/og.png(1200x630,使用 Geist 字体从渲染的 HTML 模板生成);
  • 每种语言都有自己的元数据和 hreflang 备用链接。