开发记录 2026年7月24日 6 分钟
用 Astro 搭建一处长期可维护的个人站点
从静态输出、内容集合到部署边界,记录这个个人站点选择 Astro 的理由。
个人网站通常没有复杂的实时业务,但会持续增加文章、资源和小工具。这类项目需要的不是一开始就引入庞大的技术栈,而是一套容易理解、便于扩展的基础。
为什么选择 Astro
Astro 默认输出很少的客户端 JavaScript。文章列表和详情页可以在构建阶段生成,只有搜索、筛选和主题切换等真正需要交互的部分才在浏览器中运行。
这带来几个直接好处:
- 首次加载更轻,普通内容页不依赖客户端框架启动;
- Markdown 与页面组件能够使用同一套内容结构;
- 静态产物可以直接部署到 Cloudflare Pages;
- 未来需要动态能力时,仍然可以按模块接入服务端接口。
内容与页面分离
博客文章放在内容集合中,标题、日期、分类和标签由结构化的 frontmatter 管理。页面只负责呈现和交互,不直接维护文章数据。
---
title: 一篇文章
date: 2026-07-24
category: 开发记录
tags: [Astro, 前端]
---
内容集合会在构建时校验这些字段。日期格式错误或缺少标题时,问题会在部署前出现,而不是等访客打开页面才暴露。
给动态功能留出边界
文件下载、私人备忘录和用户登录不会被伪装成静态功能。公开内容继续静态生成,涉及身份和私密数据的部分则留给未来的 Cloudflare Worker 与数据库。
这个边界让当前实现保持简单,也避免未来为了增加一个动态模块而推翻整个项目。