我注意到一些浏览器(特别是Firefox和Opera)非常热衷于使用.css和.js文件的缓存副本,即使在浏览器会话之间也是如此.当您更新其中一个文件但用户的浏览器继续使用缓存副本时,这会导致问题.
问题是:在更改文件时,强制用户浏览器重新加载文件的最优雅方法是什么?
理想情况下,解决方案不会强制浏览器在每次访问页面时重新加载文件.我会发布自己的解决方案作为答案,但我很好奇,如果有人有更好的解决方案,我会让你的投票决定.
更新:
在这里讨论了一段时间后,我发现John Millikin和da5id的建议很有用.事实证明,有一个术语:自动版本控制.
我在下面发布了一个新的答案,它是我原来的解决方案和John的建议的组合.
SCdF建议的另一个想法是将伪造的查询字符串附加到文件中.(一些Python代码自动使用时间戳作为伪造的查询字符串由pi提交.).但是,有一些关于浏览器是否会使用查询字符串缓存文件的讨论.(请记住,我们希望浏览器缓存文件并在以后的访问中使用它.我们只希望它在更改后再次获取文件.)
由于不清楚伪造的查询字符串会发生什么,我不接受这个答案.
App_Theme文件夹中的样式表将缓存在浏览器中.该方法应该是什么?这样,只要有新的部署,浏览器就应该采用最新的样式表而不是浏览器中缓存的样式表.
这也发生在其他css(不在主题文件夹中),因此使用链接中提到的自定义控件
http://blog.sallarp.com/asp-net-automatic-css-javascript-versioning/
如何在Theme文件夹中对CSS进行此操作?
编辑:主题名称在web.config中提到,如下所述.所以它不仅仅是我通过使用链接中提到的方法解决的html链接标记.
<pages styleSheetTheme="Default">
<controls>
</controls>
</pages>
Run Code Online (Sandbox Code Playgroud) 我在firefox浏览器中遇到问题,因为每次我更新我的CSS或JS文件时,我都需要清除firefox浏览器的缓存以获取更新的文件.我正在使用XSP2服务器,因为我在ubuntu中使用C#和asp.net开发了我的webapp.
有没有办法在firefox浏览器中自动重新加载更新的CSS/JS文件,并在服务器端或我的webapps中实现?
请指教.
非常感谢.