先砍掉不必要的能力
旧站依赖登录、SQLite 和一组服务端接口,但真正被使用的只有内容浏览。迁移的第一步不是换框架,而是确认哪些能力可以下线。
登录、后台、评论和阅读统计移除后,站点回到静态内容站的本质:文件进,页面出。
内容集合与路由
Astro 的内容集合把 frontmatter 校验和页面生成连在一起。文章、项目各自一个集合,草稿在查询层统一过滤,避免某个页面漏掉判断。
const articles = await getCollection('article', ({ data }) => !data.draft);
路由方面,列表、分类和分页都可以在构建期生成。查询串筛选改成静态分类路由,既保留可分享性,也避免客户端索引全量内容。
搜索与部署
Pagefind 在构建后扫描 HTML 生成索引,不需要服务端。部署到 Cloudflare Pages 时只需固定 Node 版本,并把构建命令改成构建加索引两步。
迁移过程中最容易出问题的是旧链接和图片。旧链接需要映射表,图片需要进入构建期优化管线,这两件事最好在内容迁移前定义清楚。