把博客搬上 Cloudflare Workers
记录一下这个站点是怎么上线的,方便以后重来一遍。
结构
blog/
├── build.py # Markdown -> HTML
├── site.json # 站点名、作者、网址
├── posts/*.md # 文章
├── static/ # CSS 等静态文件
└── dist/ # 构建产物,发布这个目录
发布
Workers 现在可以直接托管静态资源,不需要单独的 Pages 项目:
wrangler deploy
wrangler.toml 里指定 assets.directory = "./dist" 就够了,上传时会按文件哈希去重,只有变化的部分才会上传。
绑定域名
在 Cloudflare 后台给 Worker 加一个自定义域名(Custom Domain),它会自动创建对应的 DNS 记录并签发证书。域名必须已经托管在同一个账号下。
自定义域名走的是 Worker 的路由能力,所以不需要自己手动配 CNAME。
整个过程没有数据库、没有构建流水线,本地跑一次 python3 build.py && wrangler deploy 就完成了发布。
一点感受
静态站最大的好处是没有状态。想改样式就改 CSS,想换托管就打包 dist/ 上传到别处,不会有任何东西绑住你。