更新于 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 备用链接。