工程架构 2026年5月18日 2 分钟阅读 573 字

Astro 纯静态技术博客架构设计

从内容建模、静态生成、搜索索引到 GitHub Pages 部署,拆解一个长期可维护博客的核心架构。

静态博客架构示意图

为什么选择纯静态

个人技术博客的核心目标是长期沉淀,而不是运行复杂服务。Astro 在构建阶段把页面预渲染为 HTML,线上只需要 GitHub Pages 托管静态文件。

这种架构的优势很明确:

  • 没有服务器运维成本。
  • 没有数据库迁移压力。
  • CDN 缓存天然友好。
  • Git 历史就是内容备份。

内容模型

文章通过 src/content/config.ts 定义 schema。每篇文章都需要 titledescriptionpublishDatecategorytags

const posts = defineCollection({
  type: 'content',
  schema: z.object({
    title: z.string(),
    description: z.string(),
    publishDate: z.coerce.date(),
  }),
});

数学公式

Markdown 已接入 remark-mathrehype-katex,可以直接写公式:

Tbuild=Tmarkdown+Tassets+TindexT_{build} = T_{markdown} + T_{assets} + T_{index}

搜索策略

Pagefind 在构建后扫描 dist/,生成可部署到静态平台的搜索索引。用户访问搜索页时只加载必要索引分片,不影响首页首屏速度。

部署流程

推送到 main 后,GitHub Actions 自动执行:

npm ci
npm run build

构建产物会上传到 GitHub Pages,整个过程不需要服务器、不需要备案,也不需要手动复制文件。

相关文章

评论

#

评论正在加载。如果这里一直没有内容,请检查手机网络是否能访问 GitHub Discussions 和 giscus.app。