Workers 还是 Pages:建站时先回答的三个问题
这两个产品经常被混着讲,因为它们都能"放网站"。区别在于:Pages 是给静态站点和 Git 工作流设计的,Workers 是给请求处理设计的。现在 Workers 也能托管静态资源,边界变模糊了,选型反而要看你的工作方式。
1. 三个问题
| 问题 | 选 Pages | 选 Workers |
|---|---|---|
| 站点主要是静态文件吗 | 是 | 也可以,但要自己处理路由 |
| 需要 Git push 后自动构建 | 是,这是它的主场 | 需要自己接 CI |
| 需要请求级逻辑(改 header、鉴权、读写 KV) | 用 Pages Functions,能力有限 | 是,这是它的主场 |
如果三个都是"是",用 Workers + 静态资源,或者 Pages + Functions,取决于你更在意构建流程还是请求逻辑。
2. 能力与额度
| 维度 | Pages(免费) | Workers(免费) |
|---|---|---|
| 文件数 | 20,000 个 | 无此概念,静态资源随 Worker 上传 |
| 单文件大小 | 25 MiB | 同左(超出需 R2) |
| 请求额度 | 静态请求不计 Workers 请求数 | 100,000 次/天 |
| CPU 时间 | 仅 Functions 受限 | 10ms/次 |
| 构建 | 内置 Git 集成 | 自己构建,wrangler deploy 上传 |
| 环境变量 | 控制台配置 | wrangler.toml + secrets |
Pages 的 20,000 文件上限对小站完全够用;超过的话通常意味着该把资源放 R2 了。
3. 迁移方向
Cloudflare 官方文档里有"从 Pages 迁移到 Workers"的专门章节,说明 Workers 的静态资源能力已经覆盖 Pages 的常见场景。反过来(Workers 迁 Pages)没有官方路径,因为 Pages 不支持任意请求处理。
我的建议:新项目如果只有静态文件加一点表单处理,Pages 更省事;如果需要 KV、定时任务、复杂路由,直接上 Workers,别先用 Pages 再迁。
4. 两条路径的最小命令
Pages(Git 集成):在控制台连仓库,填构建命令和输出目录,之后每次 push 自动部署。
Workers(命令行):
wrangler init my-site
wrangler deploy
部署输出会给出 https://<name>.<你的子域>.workers.dev。完整走一遍见 53-first-free-site-with-workers.md,Pages 的流程见 67-pages-getting-started.md。
5. 一个容易忽略的差异
Pages 的每次部署都有独立的预览 URL,适合评审;Workers 的版本回滚靠 wrangler deployments,没有"每个分支一个预览域"的默认行为。团队协作看重预览环境的话,这是 Pages 的实际优势。
小结
选型不需要纠结产品名,回答三个问题就够:静态为主选 Pages,请求逻辑为主选 Workers,两个都想要就用 Workers 加静态资源。
真正的成本差异在构建流程:Pages 把"push 即部署"做成了默认,Workers 需要你自己搭 CI。如果你已经在用 GitHub Actions,这个差异就不重要了。
数据来源与检索时间
检索时间 2026-11-10。
| 来源 | URL | 对应数据 |
|---|---|---|
| Pages 限额 | https://developers.cloudflare.com/pages/platform/limits/ | 免费档 20,000 文件、单文件 25 MiB、更大文件建议用 R2 |
| Workers 静态资源 | https://developers.cloudflare.com/workers/static-assets/ | Workers 支持静态资源托管,文档含"从 Pages 迁移到 Workers"章节,未提供反向迁移 |
| Workers 限额 | https://developers.cloudflare.com/workers/platform/limits/ | 免费档 100,000 请求/天、CPU 10ms、内存 128MB |
| Workers 入门指南 | https://developers.cloudflare.com/workers/get-started/guide/ | wrangler init / wrangler deploy 的官方流程 |
核验说明
- Workers 侧的部署、
workers.dev域名、请求额度行为在本机实际验证过(见第 53 篇的部署记录)。 - 未做:没有创建 Pages 项目(无 Pages 权限),Pages 的构建流程与预览 URL 依据文档,未实测。