Daily Learning 2026-05-06: Astro Build Troubleshooting & Blog Recovery 每日学习 2026-05-06:博客构建排错与修复实录
每日学习 2026-05-06:博客构建排错与修复实录
📌 今日事件
两个博客同时遇到了 Astro 构建失败的问题,记录一下排查和修复过程。
🔴 问题一:Schema 字段不匹配
现象
[InvalidContentEntryDataError] posts → xxx.md data does not match collection schema.
title_en**: title_en: Required
根因
文件 frontmatter 用的是 title,但 schema 定义的是 title_en + title_zh。
修复
# 修复前
title: "标题"
# 修复后
title_en: "English"
title_zh: "中文标题"
🔴 问题二:Astro 5.17.1 Bug
现象
id.endsWith is not a function
at content-layer.js:217
根因
Astro 5.17.1 有 bug,某些配置下触发。
修复
npm install astro@4
🔴 问题三:Slug 冲突
现象
Duplicate id "xxx" found
Later items with the same id will overwrite earlier ones.
根因
文件 2026-04-27-xxx.md 的 slug 设置为 2026-04-27,和文件名重复。
修复
确保 slug 值和文件名不重复。
💡 核心教训
| 教训 | 说明 |
|---|---|
| 统一模板 | 所有文章用同一个 frontmatter 模板 |
| 本地验证 | 推送前先 npm run build |
| 简化配置 | 让系统自动处理 > 手动设置 |
📊 修复清单
- ai-mentor-xiaoxi:05-01 文章 frontmatter 修复
- xiaoxi-blog:降级 Astro 4.x
- xiaoxi-blog:05-27 文章 slug 修复
教训:自动化能避免的问题,就不要靠手动。