【发布时间】:2017-07-07 14:08:59
【问题描述】:
我在 IIS 上运行单页应用程序,并在我的应用程序中使用 i18next 库进行翻译。问题是,有时当我向我的 translation.json 文件添加新关键字并点击刷新时,浏览器仍然使用旧缓存的翻译文件,这导致用户看到添加的关键字但看不到翻译。例如。如果我添加关键字"somekey": "Some text here...",则将显示somekey 而不是指定的文本。
因为我的 translation.json 文件位于一个名为 locales 的文件夹中,如下所示:
locales
en
translation.json
我尝试在 web.config 中添加以下设置:
<location path="locales">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="DisableCache" />
</staticContent>
</system.webServer>
</location>
但是,当我使用 Chrome 开发人员工具查看网络流量时,我注意到 translation.json 文件仍然来自缓存并且缺少 Cache-Control: no-cache 标头。为什么这不起作用?禁用文件缓存的正确方法是什么?
编辑:刚刚再次检查了该站点,似乎translation.json 文件现在具有Cache-Control: no-cache 标头,并且实际上每次我刷新页面时都会从服务器检索它。在这一点上,我认为这个问题可能与我们的发布过程和未应用的配置更改有关。不过不确定。
【问题讨论】:
标签: json caching web-config cache-control i18next