使用nginx的Angular i18n json缓存问题

问题描述 投票:1回答:1

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

请求信息(Chrome):

  • 请求网址:https://[my-site]/assets/i18n/de.json
  • 请求方法:GET
  • 状态代码:200(来自磁盘缓存)
  • 远程地址:X.X.X.X:443
  • 推荐人政策:no-referrer-when-downgrade

响应标题:

  • content-encoding:gzip
  • content-type:application / 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

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

json angular nginx browser-cache angular-i18n
1个回答
0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.