用 Cloudflare Pages 与 Workers 搭建一套轻量博客
从静态内容、边缘函数到全球部署,拆解这套博客的完整技术路径。
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 阻挡自动提交。
最重要的原则,是让每一项动态能力都有明确用途。博客不需要因为“可能会用到”就提前引入数据库和复杂框架。
感谢阅读