使用 nginx 的 Angular i18n json 缓存问题

MBD*_*Dev 5 json nginx browser-cache angular-i18n angular

我在 de.json 和 en.json 等 json 文件中使用 Angular 和 i18n 翻译。在我的生产环境(nginx)中,我遇到了这些 JSON 文件被 Web 浏览器缓存的问题。升级后,即使日期标头已更改,Chrome 也不会下载当前 json 文件的新版本。

请求信息(Chrome):

响应标头:

  • 内容编码:gzip
  • 内容类型:应用程序/json
  • 日期: 2019 年 2 月 15 日星期五 09:04:42 GMT
  • etag:W/“5c62bf4d-2aea”
  • 最后修改时间:2019 年 2 月 12 日星期二 12:42:53 GMT
  • 服务器:nginx/1.14.0 (Ubuntu)
  • 状态:304

有没有人有解决这个问题的经验并且可以帮助我?

And*_*ewP 2

不是专门针对 Angular/nginx 的修复,但我经常使用的做法是在加载资源时将查询字符串参数附加到资源中。对我来说,这通常源自 .js 文件/应用程序的版本号,例如将其用作 RNG 的种子

所以,而不是:<script src="/assets/de.json" />

使用 <script src="/assets/de.json?_=12345" />

加分点 - 在 Angular 应用程序中,您可以跟踪要包含的资产版本,这意味着您可以发布新的资产文件,而无需让客户端立即更新它们(如果它们在本地缓存中)(但请注意,无论如何,新客户都会获得新版本)