Problem entry · machine-readable · 构建与部署

前端发布后偶发白屏(ChunkLoadError / 版本错位)

本页嵌入 #trove-entity JSON(本条目全量结构化数据);全库数据见 /agent/trove.json。

元数据

idvite-chunkloaderror收录2026-08-29
问题域构建与部署主题分组构建与部署
适用工具vite-deploynginx · 外部工具

症状

发布后部分用户白屏、刷新又偶尔恢复;控制台报 ChunkLoadError: Loading chunk N failed;动态 import 请求的带 hash 资源返回 404。

原因

版本错位:浏览器缓存的旧入口 HTML 仍引用旧版本 hash chunk,而新发布已删除旧资源 → 动态 import 404 → 模块加载失败 → 整页白屏。

解法

1. 发布顺序:先资源后入口(hash 静态资源先上线,入口 HTML 最后切换)

2. 旧资源保留过渡期(至少覆盖一个发布周期)

3. nginx SPA fallback 不能吞静态资源 404(try_files 先匹配真实文件,再回退 index.html)

4. CDN 与 Service Worker 遵循同一套版本一致性规则

验证证据

- 本地实测(2026-08-29):vite 5.4.21 两次 build,chunk hash 变化(feature-DP5yDwy7.js → feature-PcJGFbac.js);服务器只部署 v2 资源时旧 chunk HTTP 404(复现);保留旧资源后新旧页面均 HTTP 200(解法成立)。

- 实测复现日志(2026-08-29)

来源与证据

素材来源:https://juejin.cn/post/7678324462626471946

验证证据:Evidence details kept locally (2026-08-29)