前置准备
- Node.js >= 20,推荐使用 pnpm 作为包管理器
- GitHub 账号
- Cloudflare 账号
- 一个 Fuwari 博客项目(还没有?运行
pnpm create fuwari@latest)
第一步:初始化 Git 仓库并推送到 GitHub
如果你的项目还没有 Git 仓库,先初始化:
git initgit add -Agit commit -m "feat: initial commit"在 GitHub 上创建一个新仓库。注意:不要勾选 “Add a README file”、“Add .gitignore” 或 “Choose a license”——你的项目已经有这些文件了。
创建完成后,关联远程仓库并推送:
git remote add origin https://github.com/<你的用户名>/<仓库名>.gitgit branch -M maingit push -u origin main第二步:配置 astro.config.mjs
部署前需要设置正确的站点 URL。编辑 astro.config.mjs:
export default defineConfig({ site: "https://<你的项目名>.pages.dev", // ...});如果你有自己的域名,稍后可以换成自定义域名。这里先用 Cloudflare Pages 默认提供的 .pages.dev 域名作为占位。
第三步:连接 Cloudflare Pages
- 登录 Cloudflare Dashboard
- 左侧导航找到 Workers & Pages → Pages → 点击 连接到 Git
- 授权 Cloudflare 访问你的 GitHub 账号,选择刚才创建的仓库
- 配置构建参数:
| 配置项 | 值 |
|---|---|
| Framework preset | Astro |
| Build command | pnpm build |
| Build output directory | dist |
| Node.js version | 20 |
- 点击 保存并部署
第四步:等待构建完成
Cloudflare 会自动拉取你的代码、安装依赖、执行构建。整个过程通常 2-3 分钟。
构建日志中你会看到:
Running Pagefind v1.4.0 (Extended)Indexed 1 languageIndexed 2 pagesFinished in 0.275 seconds看到这些说明构建成功,Pagefind 搜索索引也生成了。
常见问题
部署后的域名是 *.workers.dev 而不是 *.pages.dev?
Cloudflare 有时会将静态站点静默路由到 Workers。在项目设置页面底部找到 “Shift to Pages” 链接,点击切换即可。
pnpm 不可用?
如果你在 Cloudflare 构建日志中看到 pnpm: command not found,检查 package.json 中是否有 "packageManager" 字段。Fuwari 脚手架默认已包含:
"packageManager": "pnpm@9.0.0"Cloudflare Pages 会自动识别并使用正确的包管理器。
构建时 sharp 报错?
某些图片处理场景需要 sharp 模块。在本地添加后再推送:
pnpm add sharpgit add package.json pnpm-lock.yamlgit commit -m "fix: add sharp for image optimization"git push第五步:绑定自定义域名(可选)
- Cloudflare Pages 项目 → 自定义域 → 输入你的域名(如
blog.example.com) - Cloudflare 自动配置 DNS 记录(前提是域名在 Cloudflare 管理)
- 等待 SSL 证书自动签发
如果域名不在 Cloudflare 管理,需要手动添加 CNAME 记录指向 <项目名>.pages.dev。
第六步:更新站点 URL
域名确定后,更新 astro.config.mjs 中的 site 字段:
site: "https://你的实际域名.com",提交并推送,Cloudflare 自动重新部署:
git add astro.config.mjsgit commit -m "fix: update site url to custom domain"git push日常使用
部署完成后,日常写文章只需三步:
pnpm new-post 文章标题# 编辑 src/content/posts/文章标题.mdgit add -A && git commit -m "post: 新文章"git push每次 push 到 GitHub,Cloudflare Pages 会自动检测并触发构建部署。
总结
Fuwari 是纯静态站点,部署到 Cloudflare Pages 几乎是零配置。整个流程核心就两步:推代码到 GitHub → Cloudflare Pages 连接仓库。相比 VPS 部署,不需要维护服务器,免费 tier 对个人博客完全够用,HTTPS 和 CDN 自动配备。