<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>一个博客</title><description>记录学习, 分享兴趣</description><link>https://noble.moe/</link><language>zh_CN</language><item><title>Astro + Fuwari + Cloudflare Pages 博客部署记录</title><link>https://noble.moe/posts/astro-fuwari-cloudflare-pages-deploy/</link><guid isPermaLink="true">https://noble.moe/posts/astro-fuwari-cloudflare-pages-deploy/</guid><description>记录使用 Astro、Fuwari、GitHub 和 Cloudflare Pages 搭建个人静态博客的完整流程。</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;最近打算搭建一个个人博客，用来记录技术折腾、网络配置、AI 工具、服务器运维以及一些零散笔记。&lt;/p&gt;
&lt;p&gt;因为这个博客是纯静态站点，不需要后端服务，也不涉及数据库，最终我选择了 &lt;strong&gt;Cloudflare Pages&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;博客框架使用 &lt;strong&gt;Astro&lt;/strong&gt;，主题选用 &lt;strong&gt;Fuwari&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;整体的部署流程如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;本地 Astro / Fuwari 项目
→ GitHub 仓库
→ Cloudflare Pages 自动构建
→ 博客上线
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;创建 Fuwari 项目&lt;/h2&gt;
&lt;p&gt;我没有使用 Astro 的默认模板，而是直接通过 Fuwari 官方脚手架来创建项目。&lt;/p&gt;
&lt;p&gt;在本地目录执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd D:\Astro
npm create fuwari@latest
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;按照提示创建项目，例如将项目命名为 &lt;code&gt;blog&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;进入项目目录：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd D:\Astro\blog
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装依赖：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启动本地开发环境：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在浏览器中访问：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http://localhost:4321
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果能正常看到页面，说明项目已经成功运行。&lt;/p&gt;
&lt;h2&gt;修改站点配置&lt;/h2&gt;
&lt;p&gt;Fuwari 的主要配置文件位于：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;src/config.ts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在这里可以修改以下内容：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;站点标题
站点描述
导航栏
头像
主题颜色
社交链接
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改后刷新页面即可检查配置是否生效。&lt;/p&gt;
&lt;h2&gt;本地构建测试&lt;/h2&gt;
&lt;p&gt;部署之前，建议先在本地完成一次构建测试。&lt;/p&gt;
&lt;p&gt;执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm build
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;构建成功后，会生成 &lt;code&gt;dist&lt;/code&gt; 目录，该目录就是最终部署到 Cloudflare Pages 的静态文件目录。&lt;/p&gt;
&lt;p&gt;本地构建成功非常重要，因为 Cloudflare Pages 在线部署时执行的也是类似的构建流程。如果本地无法通过构建，线上部署通常也会失败。&lt;/p&gt;
&lt;h2&gt;初始化 Git 仓库&lt;/h2&gt;
&lt;p&gt;确认项目可以正常构建后，准备将代码推送到 GitHub。&lt;/p&gt;
&lt;p&gt;初始化 Git 仓库：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加全部文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git add .
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果第一次提交时出现以下提示：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Author identity unknown
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;说明 Git 尚未配置用户信息。配置用户名和邮箱：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git config --global user.name &quot;your-name&quot;
git config --global user.email &quot;your-email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后提交代码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git commit -m &quot;init fuwari blog&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;创建 GitHub 仓库&lt;/h2&gt;
&lt;p&gt;登录 GitHub，新建一个仓库，例如命名为 &lt;code&gt;blog&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;创建仓库时建议&lt;strong&gt;不要&lt;/strong&gt;勾选以下选项：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Add a README file
Add .gitignore
Choose a license
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;因为本地项目已经包含完整文件。如果仓库提前初始化了这些内容，首次推送时可能会出现历史记录冲突。&lt;/p&gt;
&lt;p&gt;添加远程仓库（此处先使用 HTTPS 地址，稍后会解决认证问题）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote add origin https://github.com/your-username/blog.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;设置主分支名称：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git branch -M main
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;解决 GitHub 推送认证问题&lt;/h2&gt;
&lt;p&gt;首次推送时，我遇到了 GitHub 的 HTTPS 认证错误：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Password authentication is not supported for Git operations.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;GitHub 已不再支持使用密码进行 Git 操作，目前推荐使用以下方式之一：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Personal Access Token
GitHub CLI
SSH Key
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里我选择使用 SSH。&lt;/p&gt;
&lt;h3&gt;生成 SSH Key&lt;/h3&gt;
&lt;p&gt;执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh-keygen -t ed25519 -C &quot;your-email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;一路按回车即可。&lt;/p&gt;
&lt;h3&gt;查看公钥&lt;/h3&gt;
&lt;p&gt;执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;复制输出的完整内容。&lt;/p&gt;
&lt;h3&gt;添加到 GitHub&lt;/h3&gt;
&lt;p&gt;进入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GitHub → Settings → SSH and GPG keys → New SSH key
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;填写：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Title: Windows PC
Key type: Authentication Key
Key: 粘贴刚刚复制的公钥
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;测试连接&lt;/h3&gt;
&lt;p&gt;执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果看到类似以下输出，说明 SSH 配置成功：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Hi username! You&apos;ve successfully authenticated, but GitHub does not provide shell access.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;改用 SSH 地址推送&lt;/h3&gt;
&lt;p&gt;接下来将远程仓库地址改为 SSH 形式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote set-url origin git@github.com:your-username/blog.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;随后即可推送代码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git push -u origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;推送完成后，就能在 GitHub 仓库中看到完整的项目文件了。&lt;/p&gt;
&lt;h2&gt;部署到 Cloudflare Pages&lt;/h2&gt;
&lt;p&gt;进入 Cloudflare 控制台：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Workers &amp;amp; Pages
→ Create Application
→ Pages
→ Connect to Git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;选择刚刚创建的 GitHub 仓库。&lt;/p&gt;
&lt;p&gt;构建配置填写如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Build command: pnpm build
Build output directory: dist
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果后续遇到 Node.js 版本问题，可以添加环境变量：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;NODE_VERSION=20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认配置后开始部署。&lt;/p&gt;
&lt;p&gt;部署完成后，Cloudflare Pages 会生成一个默认域名，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://xxx.pages.dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;访问该地址即可查看博客。&lt;/p&gt;
&lt;h2&gt;后续更新流程&lt;/h2&gt;
&lt;p&gt;以后无论是修改配置、更新页面还是发布新文章，只需要在本地完成修改后执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm build
git add .
git commit -m &quot;update blog&quot;
git push
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;推送到 GitHub 后，Cloudflare Pages 会自动触发重新构建和部署。&lt;/p&gt;
&lt;p&gt;整个更新流程如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;本地修改
→ git commit
→ git push
→ Cloudflare Pages 自动部署
→ 网站更新
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;文章与资源结构&lt;/h2&gt;
&lt;p&gt;Fuwari 的文章默认存放在：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;src/content/posts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;普通文章可以直接创建 Markdown 文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;src/content/posts/my-first-post.md
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果文章包含图片等资源，推荐使用目录结构：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;src/content/posts/my-guide/
├── index.md
└── cover.png
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样可以将文章与相关资源放在同一个目录中，便于管理。&lt;/p&gt;
&lt;p&gt;在文章中引用同目录图片：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![封面](./cover.png)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果只是纯文字内容，直接使用单个 &lt;code&gt;.md&lt;/code&gt; 文件即可。&lt;/p&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;本次博客部署主要完成了以下步骤：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;创建 Fuwari 项目
修改站点配置
本地构建测试
初始化 Git 仓库
推送到 GitHub
配置 SSH 认证
接入 Cloudflare Pages
完成自动部署
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最终使用的技术栈：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Astro
Fuwari
GitHub
Cloudflare Pages
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;对于个人静态博客来说，这套方案轻量、免费且维护成本低。后续只需要在本地编写文章并推送到 GitHub，Cloudflare Pages 就会自动完成构建和发布，非常适合作为长期使用的个人博客方案。&lt;/p&gt;
</content:encoded></item></channel></rss>