Astro 纯静态技术博客架构设计
从内容建模、静态生成、搜索索引到 GitHub Pages 部署,拆解一个长期可维护博客的核心架构。
为什么选择纯静态
个人技术博客的核心目标是长期沉淀,而不是运行复杂服务。Astro 在构建阶段把页面预渲染为 HTML,线上只需要 GitHub Pages 托管静态文件。
这种架构的优势很明确:
- 没有服务器运维成本。
- 没有数据库迁移压力。
- CDN 缓存天然友好。
- Git 历史就是内容备份。
内容模型
文章通过 src/content/config.ts 定义 schema。每篇文章都需要 title、description、publishDate、category 和 tags。
const posts = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
description: z.string(),
publishDate: z.coerce.date(),
}),
});
数学公式
Markdown 已接入 remark-math 与 rehype-katex,可以直接写公式:
搜索策略
Pagefind 在构建后扫描 dist/,生成可部署到静态平台的搜索索引。用户访问搜索页时只加载必要索引分片,不影响首页首屏速度。
部署流程
推送到 main 后,GitHub Actions 自动执行:
npm ci
npm run build
构建产物会上传到 GitHub Pages,整个过程不需要服务器、不需要备案,也不需要手动复制文件。
评论
#评论正在加载。如果这里一直没有内容,请检查手机网络是否能访问 GitHub Discussions 和 giscus.app。