Angular i18n json 使用 nginx 的缓存问题
Angular i18n json cache issues using nginx
我在 json 文件(例如 de.json 和 en.json 中使用带有 i18n 翻译的 angular。在我的生产环境 (nginx) 中,我遇到了这些 JSON 文件被网络浏览器缓存的问题。升级后,Chrome 将不会下载当前 json 文件的新版本,即使日期 header 已更改。
请求信息(Chrome):
- 请求URL:https://[my-site]/assets/i18n/de.json
- 请求方法:GET
- 状态码:200(来自磁盘缓存)
- 远程地址:X.X.X.X:443
- 推荐人政策:no-referrer-when-downgrade
响应Headers:
- content-encoding: gzip
- content-type: application/json
- 日期:2019 年 2 月 15 日,星期五 09:04:42 GMT
- etag: W/"5c62bf4d-2aea"
- last-modified: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 应用程序中,您可以跟踪要包含的资产版本,这意味着您可以发布新的资产文件,而无需客户立即更新它们将它们放在本地缓存中(尽管请注意新客户端无论如何都会获得新版本)
我在 json 文件(例如 de.json 和 en.json 中使用带有 i18n 翻译的 angular。在我的生产环境 (nginx) 中,我遇到了这些 JSON 文件被网络浏览器缓存的问题。升级后,Chrome 将不会下载当前 json 文件的新版本,即使日期 header 已更改。
请求信息(Chrome):
- 请求URL:https://[my-site]/assets/i18n/de.json
- 请求方法:GET
- 状态码:200(来自磁盘缓存)
- 远程地址:X.X.X.X:443
- 推荐人政策:no-referrer-when-downgrade
响应Headers:
- content-encoding: gzip
- content-type: application/json
- 日期:2019 年 2 月 15 日,星期五 09:04:42 GMT
- etag: W/"5c62bf4d-2aea"
- last-modified: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 应用程序中,您可以跟踪要包含的资产版本,这意味着您可以发布新的资产文件,而无需客户立即更新它们将它们放在本地缓存中(尽管请注意新客户端无论如何都会获得新版本)