Dev 会掩盖错误
Astro 里路径写错时,dev 可能死循环,build 才会把真相摔出来
这个网站做过一次混合架构:根目录是现在的 Starlight wiki(src/content/docs/),旧博客放在 /legacy/(src/pages/legacy/)
本地 npm run dev 打开 /legacy/ 时,终端高频刷 [200] /legacy/,像死循环。一开始以为是 Vite 和 Starlight 抢路由,或 import.meta.glob 把 HMR 烧起来了。
后来把页面简化成纯 HTML,排除了前端逻辑。真正有用的是跑一次 npm run build。dev 是按需加载,路径错了不一定致命报错,页面加载失败就无限重试,看起来像疯狂刷新。build 会做静态分析,立刻指出:
- 布局引用少写了一层
../ - 本地脚本写成了没有
./的裸路径
旧页面在 src/pages/legacy/ 下,引用全局布局/组件要用 ../../,同目录模块用 ./。内部链接都加上 /legacy/ 前缀,避免撞上根目录 Starlight。
Dev 模式会掩盖错误,Build 模式才会揭露真相。
遇到莫名其妙的无限刷新,先 build 一次,让构建工具把相对路径揪出来。
