Angular I18N JSON CACHE使用NGINX发出



我正在使用i18n翻译的Angular,例如De.Json和En.json等JSON文件中的i18n翻译。在我的生产环境(NGINX)中,我有一个问题,即这些JSON文件由Web浏览器缓存。升级后,Chrome也不会下载当前JSON文件的新版本,即使日期标题已更改。

请求信息(Chrome):

  • 请求URL:https://[my-site]/assets/i18n/de.json
  • 请求方法:获取
  • 状态代码:200(来自磁盘缓存)
  • 远程地址:x.x.x.x:443
  • 推荐人策略:无引用者 - 当downgrade

响应标题:

  • 内容编码: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

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

不是专门用于Angular/nginx的修复程序,但是我经常使用的练习是将查询字符串参数附加到加载时。对我来说,这通常是从.js文件/应用程序的版本编号派生的,例如将其用作RNG

的种子

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

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

奖励点 - 在您的Angular应用程序中,您可以跟踪要包含的资产的哪些版本,这意味着您可以在本地cache中发布新的资产文件而无需立即将客户端更新到它们(虽然请注意,无论如何,新客户将获得新版本)

最新更新