KernelRanch
返回文章列表

Workers 还是 Pages:建站时先回答的三个问题

2026-11-10 #Cloudflare

这两个产品经常被混着讲,因为它们都能"放网站"。区别在于: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 依据文档,未实测。