IIS CSS缓存
时间:2020-03-06 14:33:56 来源:igfitidea点击:
在提交新代码之后,当我们开发新站点或者测试涉及CSS的新站点的更改时,有人去检查更改时,他们总是会看到旧CSS的缓存版本。这在测试中引起了很多问题,因为人们永远无法确定他们是否在屏幕上拥有最新的CSS(我知道移动并单击刷新会清除此缓存,但我不能指望最终用户会知道这样做)。我有什么可能的解决方案?
解决方案
在开发环境中,将Expires标头设置得低得多。在生产环境中,将其设置为较高,然后在发布之前大约一周将其设置为较低。
如果我们要从静态文件(或者查询字符串无关紧要的任何内容)中提供CSS,请尝试更改该值以确保浏览器提出新的请求,因为它会认为这会提取完全不同的资源,因此例如:
标记中CSS参考中的" styles.css?token = 1234",并在每次CSS签入时更改" token"的值
它不是一个很好的解决方案,但是我之前在页面级别通过在CSS文件的调用末尾添加一个querystring来解决此问题:
<link href="/css/global.css?id=3939" type="text/css" rel="stylesheet" />
然后,我将id值随机化,以使它始终在页面加载时加载不同的值。然后,在将产品投入生产之前,请先删除此代码。我想我们也可以从配置文件中提取该值,这样每次提交只需加载一次。
针对此问题的JavaScript版本,给出了类似的(更详细的答案),具有相同的问题/解决方案
帮助进行积极的JavaScript缓存