首页 > 文章列表 > Egg.js静态文件缓存失效:重启后为何加载旧版本?

Egg.js静态文件缓存失效:重启后为何加载旧版本?

494 2025-03-11

Egg.js静态文件缓存失效:重启后为何加载旧版本?

Egg.js 生产环境静态文件缓存问题及解决方案

问题:

Egg.js 应用部署静态文件后,重启服务器,首次访问加载的是旧版本静态文件,造成页面显示异常。

原因分析:

此问题源于 Egg.js 生产环境下的静态文件缓存配置失效。config.default.js 中的 maxAge 配置在生产环境下无效。

解决方案:

maxAge 配置移至 config.prod.js 文件中,并在启动应用时使用 --env=prod 参数指定生产环境。 将 maxAge 设置为 0 可禁用缓存,确保每次都加载最新资源。

最佳实践:

  • 缓存策略: 对于静态资源(如 CSS、JS),建议采用合理的 maxAge 值,但需谨慎,避免长期缓存导致更新失效。 对于动态内容(如 HTML),不建议使用强缓存。
  • 版本控制: 在静态资源文件名中添加版本号(例如哈希值),强制浏览器下载最新版本。
  • 环境区分: 明确区分开发环境和生产环境的配置,避免配置冲突。

通过以上调整,可以有效解决 Egg.js 生产环境下静态文件缓存导致的资源加载问题,确保应用始终加载最新的静态资源。

来源:1740279004