
egg.js 生产环境静态文件缓存问题及解决方案
问题:
Egg.js 应用部署静态文件后,重启服务器,首次访问加载的是旧版本静态文件,造成页面显示异常。
原因分析:
此问题源于 Egg.js 生产环境下的静态文件缓存配置失效。config.default.js 中的 maxAge 配置在生产环境下无效。
解决方案:
将 maxAge 配置移至 config.prod.js 文件中,并在启动应用时使用 --env=prod 参数指定生产环境。 将 maxAge 设置为 0 可禁用缓存,确保每次都加载最新资源。
最佳实践:
-
缓存策略: 对于静态资源(如 CSS、JS),建议采用合理的
maxAge值,但需谨慎,避免长期缓存导致更新失效。 对于动态内容(如 HTML),不建议使用强缓存。 - 版本控制: 在静态资源文件名中添加版本号(例如哈希值),强制浏览器下载最新版本。
- 环境区分: 明确区分开发环境和生产环境的配置,避免配置冲突。
通过以上调整,可以有效解决 Egg.js 生产环境下静态文件缓存导致的资源加载问题,确保应用始终加载最新的静态资源。










