使用Nginx的Angular i18n json缓存问题

时间:2019-02-15 09:31:41

标签: json angular nginx browser-cache angular-i18n

我在de.json和en.json之类的json文件中使用带i18n转换的angular。在我的生产环境(nginx)中,我有一个问题,这些JSON文件被Web浏览器缓存。升级后,即使日期标题已更改,Chrome也不会下载当前json文件的新版本。

请求信息(Chrome):

响应标题:

  • 内容编码:gzip
  • 内容类型:application / json
  • 日期:2019年2月15日星期五09:04:42 GMT
  • etag:W /“ 5c62bf4d-2aea”
  • 最后修改时间:周二,2019年2月12日格林尼治标准时间
  • 服务器:nginx / 1.14.0(Ubuntu)
  • 状态:304

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

1 个答案:

答案 0 :(得分:0)

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

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

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

奖励积分-在Angular应用程序中,您可以跟踪要包含的资产版本,这意味着您可以释放新的资产文件,而无需让客户立即将其更新到本地缓存中(尽管请注意,无论如何,新客户都会获得新版本)