前言
最近为自己从零搭建了一个个人博客,技术选型上尝试了 Astro + Cloudflare Pages 的组合。整个体验出乎意料地流畅,从开发到部署一气呵成。这里记录下架构思路和实现细节,希望能为同样有搭建需求的朋友提供一些参考。
技术栈
为什么这样选?Astro 对 Markdown 的一流支持让写作体验极佳,而 Cloudflare 的边缘生态把动态功能(认证、数据库)都搬到了离用户最近的地方,静态资源和动态接口都足够快。
核心功能
Astro 创建的站点默认是预渲染的静态 HTML,想要实现登录、实时配置等功能就需要动态服务端渲染。通过安装
@astrojs/cloudflare 适配器并配置为 SSR 模式,所有页面都可以在请求时生成,从而支持:
使用 D1 作为数据层,表结构清晰,覆盖博客的全部核心数据:
posts:文章表,存储标题、摘要、正文、作者、状态、发布时间等users:管理员用户表,用于管理后台登录categories:文章分类,支持创建、排序和绑定文章treehole_messages:匿名留言板(树洞),访客可互动site_config:站点全局配置,以键值对形式存储,方便扩展所有操作通过 Workers 内嵌入的 D1 客户端完成,不需要额外的数据库连接池,性能开销极低。
整体视觉采用深色背景打底,搭配半透明磨砂材质(glassmorphism)和柔和阴影,营造现代科技感:
后台功能
博客内置轻量管理面板,访问
/admin 并登录后即可管理所有内容:
部署流程
集成 Cloudflare Pages 的部署非常简单。安装依赖并构建之后,一条命令即可上线:
``
bash
# 安装依赖
npm install
# 构建生产版本
npm run build
# 通过 Wrangler 将 dist 目录部署到 Cloudflare Pages
npx wrangler pages deploy dist --project-name=astro-blog
``
Pages 还支持连接到 GitHub 仓库,推送代码自动触发构建和部署,无需手动执行命令。自定义域名、HTTPS 证书也全部免费自动配置。
性能优化
总结
这套方案兼顾了开发体验、运行性能和部署成本。Astro 让内容生产变得愉悦,Cloudflare Pages 提供了开箱即用的全球加速和零运维的数据库。如果你也计划搭建个人博客,又不想折腾服务器和繁琐的 CI/CD,非常推荐试一试这个组合。