用 Astro + Cloudflare Pages 搭建个人博客的折腾记录

最近把博客从零搭了起来,用的是 Astro 框架加上 koi 这个主题,部署在 Cloudflare Pages 上。整体体验还不错,记录一下过程。

技术选型

  • 框架:Astro —— 静态优先,生成的页面基本是纯 HTML,加载极快
  • 主题:koi —— 颜值在线,有明暗模式,响应式也做得挺好
  • 部署:Cloudflare Pages —— 免费,全球 CDN,自动 CI/CD

关键配置

astro.config.js

部署到自定义域名需要修改 site 字段,并把 base 改为 /

export default defineConfig({
  site: 'https://nekoyoyo.com',
  base: '/',
  // ...
});

Cloudflare Pages 构建设置

在 Cloudflare Pages 控制台创建项目时:

设置项
构建命令pnpm build
输出目录dist
Node.js 版本20.x

自定义域名

在项目 → Custom domains → 添加 nekoyoyo.com,Cloudflare 会自动配置 DNS(前提是域名已经托管在 Cloudflare)。

遇到的坑

  1. pnpm 版本:koi 主题用的是 pnpm@11,Cloudflare Pages 需要在环境变量里设置 ENABLE_EXPERIMENTAL_PNPM_STORE=1 或者在项目根目录放一个 .node-version 文件(koi 已经有了,直接用就行)
  2. 图片优化:Astro 的 sharp 依赖需要在 pnpm-workspace.yaml 里允许构建脚本,koi 已经配置好了

整体还是挺顺利的,Cloudflare Pages 的免费额度对个人博客来说完全够用。