用 Astro 搭建个人博客


最近在折腾个人博客,试了不少方案,最后选了 Astro。记录一下选型过程和搭建体验。

为什么是 Astro

之前考虑过几个方案:

  • Hugo:构建速度极快,单二进制文件,但 Go template 语法比较原始,想加个交互组件很麻烦。
  • Next.js:功能强大但太重了,一个博客不需要 SSR 和那些复杂的路由逻辑。
  • VitePress:更适合文档站,博客功能不够灵活。

Astro 吸引我的点是 Island 架构——默认输出纯静态 HTML,零 JS 开销,但需要交互的地方可以嵌入 React/Vue 组件。对于博客这种内容为主的站点,这个权衡刚好。

搭建过程

整个搭建过程大概花了 20 分钟:

npm create astro@latest -- --template blog
npm install @astrojs/cloudflare

然后配置一下 astro.config.mjs,加上 Cloudflare adapter,就可以部署了。

写文章就是在 src/content/blog/ 下放 Markdown 文件,frontmatter 里写标题、日期、摘要。支持 MDX,可以在文章里嵌入组件。

部署

用 Cloudflare Pages 部署,GitHub push 自动触发构建。构建速度很快,几百毫秒就完事了。

Build command: npm run build
Output directory: dist/client

域名直接在 Cloudflare 里解析,SSL 证书自动签发,全程不用操心。

总结

如果你也想搭个个人博客,Astro 是个不错的选择。开发体验好,构建快,部署简单,后续想加功能也有足够的扩展空间。