← 返回全部文章

用 Cloudflare Pages 与 Workers 搭建一套轻量博客

从静态内容、边缘函数到全球部署,拆解这套博客的完整技术路径。

CloudflarePagesWorkers

Cloudflare Pages 很适合内容型网站:页面在构建阶段生成,访问时直接从全球边缘网络返回;只有真正需要动态逻辑的请求,才进入 Pages Functions。

为什么采用静态优先

博客的大多数内容不会因为每一次访问而改变。提前生成 HTML,可以减少运行时依赖、降低延迟,也让搜索引擎更容易抓取完整内容。

这套项目把请求分成两类:

  • //archive//posts/* 是静态资源,由 Pages 直接提供。
  • /api/* 进入 Pages Functions,在 Workers Runtime 中执行。

_routes.json 明确限定了 Functions 的匹配范围。因此,读取文章不会产生 Function 调用,动态接口依然可以使用 Cloudflare 的边缘上下文。

一次发布发生了什么

运行构建命令后,脚本读取 Markdown 文件,生成文章页面、归档、RSS、站点地图和搜索索引。Wrangler 随后上传 dist 目录,同时编译项目根目录下的 functions

Markdown 内容
  → 静态构建脚本
  → HTML / RSS / Sitemap
  → Cloudflare Pages

Pages Functions
  → Workers Runtime
  → /api/edge-info

后续可以怎样扩展

如果需要评论,可以绑定 D1;图片较多时,可以把原图放进 R2;需要邮件订阅时,可以在 Function 中调用邮件服务,并用 Turnstile 阻挡自动提交。

最重要的原则,是让每一项动态能力都有明确用途。博客不需要因为“可能会用到”就提前引入数据库和复杂框架。

感谢阅读