我在de.json和en.json这样的json文件中使用了带有i18n翻译的angular。在我的生产环境(nginx)中,我遇到了这些JSON文件被Web浏览器缓存的问题。升级后,即使日期标题已更改,Chrome也不会下载新版本的当前json文件。
请求信息(Chrome):
响应标题:
有没有人有这个问题的经验,可以帮助我吗?
不是特别修复Angular / nginx,但我经常使用的做法是在加载时将查询字符串参数附加到资源。对我来说,这通常是从.js文件/应用程序的版本号派生的,例如。用它作为RNG的种子
所以,而不是:<script src="/assets/de.json" />
使用<script src="/assets/de.json?_=12345" />
奖励积分 - 在您的Angular应用程序中,您可以跟踪要包含的资产的版本,这意味着您可以释放新的资产文件,而不会让客户端立即更新它们,如果他们将它们放在本地缓存中(尽管请注意新客户将获得新版本,无论如何)