建站 · 约 7 分钟

从零到上线:Cloudflare Pages 部署全流程

把仓库接到 Cloudflare Pages,配置构建命令、绑定自定义域名, 并搞清楚为什么私密仓库要走这条路而不是 GitHub Pages。

一、先说一个容易踩的坑

很多人第一反应是「用 GitHub Pages 不就行了」。但 GitHub 官方文档写得很明确:

GitHub Pages 在 GitHub Free 下只支持公开仓库; 私密仓库需要 GitHub Pro、Team 或 Enterprise。

也就是说,私密仓库 + 免费账户 = 用不了 GitHub Pages。

有两条路可以走:

  • 把仓库改成公开,继续用 GitHub Pages。
  • 保持私密,改用 Cloudflare Pages——它免费支持私密仓库。
本文走第二条

仓库保持私密,托管交给 Cloudflare Pages。 顺便还能拿到全球 CDN 和自动 HTTPS,域名解析本来就在 Cloudflare,链路最短。

二、准备仓库

在 GitHub 上创建私密仓库 linqian,然后把本地文件推上去。

git init
git add .
git commit -m "init: 博客初始版本"
git branch -M main
git remote add origin https://github.com/jeskuns/linqian.git
git push -u origin main

站点文件放在仓库根目录: index.html、about.html、 404.html、posts/、assets/。

三、连接 Cloudflare Pages

  1. 登录 Cloudflare Dashboard,进入 Workers & Pages。
  2. 点击 Create → 选择 Pages 标签页。
  3. 选择 Connect to Git。
  4. 授权 Cloudflare 访问 GitHub,选中 linqian 仓库。
  5. 点击 Begin setup。

构建配置

因为这个站是纯静态的、没有构建步骤,所以配置非常简单:

配置项填写内容
Project namelinqian
Production branchmain
Framework presetNone
Build command留空
Build output directory/

点击 Save and Deploy。第一次部署大约几十秒, 完成后会给你一个 linqian.pages.dev 的预览地址。

构建命令留空的原因

页面是手写的 HTML,不需要打包。留空能减少一个失败环节—— 很多人的部署失败都是因为构建命令写错。

四、绑定自定义域名

  1. 进入 Pages 项目 → Custom domains 标签页。
  2. 点击 Set up a custom domain。
  3. 输入 linqian-1ar.pages.dev,确认。
  4. 因为域名的 DNS 已经在同一个 Cloudflare 账户里, 系统会自动创建 CNAME 记录。点击 Activate domain 即可。

证书签发通常几分钟内完成。之后访问 https://linqian-1ar.pages.dev 就能看到站点了。

顺便加上 www

如果你希望 www.linqian-1ar.pages.dev 也能访问, 在 Custom domains 里再加一条,Cloudflare 会处理跳转。

五、验证部署

# 检查解析
dig +short linqian-1ar.pages.dev

# 检查 HTTP 状态与证书
curl -I https://linqian-1ar.pages.dev

# 预期看到
# HTTP/2 200
# cf-cache-status: HIT 或 DYNAMIC

六、以后怎么更新

非常简单——改文件、提交、推送,Cloudflare 会自动重新部署:

git add .
git commit -m "post: 新增一篇文章"
git push

另外,推送到非 main 分支时会生成独立的预览地址, 适合先看效果再合并。

七、本地预览

因为是纯静态站,本地预览需要一个简单的 HTTP 服务 (直接双击 index.html 会因为绝对路径失效):

# 方式一:Node
npx serve .

# 方式二:Python
python -m http.server 8000

# 然后浏览器打开 http://localhost:8000
关于绝对路径

站内链接使用 /assets/... 这样的根绝对路径, 所以必须用自定义域名或本地服务器访问。 直接访问 jeskuns.github.io/linqian/ 这类子路径地址会 404。

八、检查清单

  • GitHub 私密仓库已创建并推送成功。
  • Cloudflare Pages 项目构建通过,*.pages.dev 可访问。
  • 自定义域名已激活,HTTPS 证书已签发。
  • dig 与 curl -I 均返回预期结果。
  • 随便点几个站内链接,确认没有 404。

全部打勾,这个站就正式上线了。