工程约 1 分钟
部署
静态预渲染、Cloudflare Workers 静态资产、响应头、重定向与自定义域名。
本页目录
本站没有运行时服务器。react-router build 把每个路由预渲染到 build/client;Cloudflare Workers 把这些文件当作静态资产托管,只对未知 URL 回退到生成的 404.html。
构建#
本地验证bash
构建产物包含每个路由的 HTML,以及 React Router 用于客户端导航的 .data 文件。不要压平或重命名这些文件。
Cloudflare Workers#
- 1
创建 Worker 项目
在 Cloudflare 控制台的 Workers & Pages 中创建 Worker,导入本仓库。
- 2
设置构建与部署
构建命令
npm run typecheck && npm test && npm run build,部署命令npx wrangler deploy,Node 22。 - 3
任意域名都可用
不需要构建变量:canonical、OG、JSON-LD 与 sitemap 的源会在边缘替换为请求域名,
*.workers.dev、预览域名与自定义域名都能直接用。 - 4
部署
推送到 main,或在本地登录 Wrangler 后运行
npm run deploy。
wrangler.tomltoml
响应头与重定向#
| 文件 | 作用 |
|---|---|
public/_headers | 安全响应头与不可变资源缓存。 |
404.html(构建生成) | 未知 URL 的品牌化 404 响应;已知路由由各自的 HTML 文件提供。 |
public/robots.txt | 爬虫策略与 sitemap 位置。 |
scripts/build-sitemap.mjs | 遍历预渲染 HTML 并写出 sitemap.xml。 |
顺序很重要
Workers 静态资产会先提供已存在的文件。如果某个路由 404,先确认它的预渲染 HTML 是否存在,再改 404 回退页。
自定义域名#
- 在 Worker → Settings → Domains & Routes 添加自定义域名,按提示配置 DNS。
- 换域名无需重新配置:canonical 与 sitemap 跟随请求域名。
- 在 Search Console 提交生成的
sitemap.xml。