ZrLog 静态页面的 GitHub 与 Cloudflare Pages 发布流程
ZrLog 负责文章写作、插件管理和静态页面生成,已经生成的首页、文章页等内容则可以交给 Cloudflare Pages 对外提供访问,从而避免每次访问都由 ZrLog 后端处理。
内容发生变化时,ZrLog 生成静态文件,static-plus 将这些文件推送到 GitHub,再由 Cloudflare Pages 部署对应的提交。

将内容管理与公开访问拆开后,即使 ZrLog 暂时处于维护状态,已经部署的静态页面仍然可以访问。发布出现问题时,也可以依次检查插件发布记录、GitHub 提交和 Cloudflare Pages 部署记录,确认流程停在哪一步。
这套方式也有明确的边界:文章需要等待 Pages 部署完成后才会更新,评论、登录和动态搜索仍然由 ZrLog 处理。Cloudflare Pages 只托管 static-plus 推送到 GitHub 的静态页面,不运行 ZrLog 后台,也不会将后台和数据库迁移到 Pages。
先把静态文件发布到 GitHub
- 新建一个只用于存放静态文件的 GitHub 仓库,分支使用
main。创建仅允许访问该仓库,并具备 Contents 读写权限的 Personal Access Token。插件中应使用 Token,不要填写 GitHub 登录密码。 - 进入 ZrLog 的“网站设置 -> 博客设置”,将网站地址改为最终使用的 HTTPS 域名,并开启静态化。这个地址会写入文章链接,因此应在发布前确定。
- 打开
static-plus,将发布目标设置为“Git 仓库”。仓库 URL 填写https://github.com/your-name/zrlog-pages.git,分支填写main,凭证所有者填写 GitHub 用户名,密码栏填写 Token,自定义静态域名填写最终访问地址。开启主题文件和静态 HTML 发布;如果本地附件也需要通过 Pages 访问,再开启附件发布。
点击“保存配置并运行发布”,然后打开 GitHub 仓库,确认根目录中已经出现 index.html、文章 HTML 和主题资源。Cloudflare Pages 部署的是仓库中的这些文件,因此应先确认静态内容已经成功推送。
让 Pages 部署仓库根目录
进入 Cloudflare 的“Workers & Pages”,按照 Git integration 创建 Pages 项目,并连接前面创建的 GitHub 仓库。
这个仓库中存放的是生成后的静态文件,不是 Node.js 工程。参考静态 HTML配置以下项目:
| Cloudflare Pages 配置 | 填写值 |
|---|---|
| Production branch | main,需要与插件推送分支一致 |
| Framework preset | None |
| Build command | exit 0 |
| Build output directory | /,静态文件就在仓库根目录 |
| Root directory | 留空 |
第一次部署完成后,先打开 *.pages.dev 地址,检查首页、文章、CSS 和图片是否可以正常访问。确认无误后,在“Custom domains”中按照 Custom domains 添加正式域名,不要只手工增加 CNAME。域名状态变为 Active 后,再通过正式地址检查一次。
检查发布结果
完成配置后,可以发布一篇测试文章,并从以下三个位置核对发布结果:
static-plus显示发布成功。- GitHub 中出现
static-plus plugin auto commit提交。 - Cloudflare Pages 中出现与该提交对应的部署记录。
如果 GitHub 没有新提交,检查插件凭证和发布范围;如果 GitHub 已有提交但 Pages 没有开始部署,检查 Production branch 是否与插件推送的分支一致;如果页面可以打开,但链接仍然指向旧域名,应统一 ZrLog 网站地址和插件中的自定义静态域名,然后重新发布。
如果 ZrLog 部署在 FaaS 环境中,完整安装方式仍可参考无服务上云【Cloudflare + FaaS(lambda)】。