有些浏览器会缓存js和css文件,除非你强制它们,否则无法刷新它们.什么是最简单的方法.
我刚刚实现了这个似乎有用的解决方案.
在页面上声明一个版本变量
public string version { get; set; }
Run Code Online (Sandbox Code Playgroud)
从web.config键获取版本号
version = ConfigurationManager.AppSettings["versionNumber"];
Run Code Online (Sandbox Code Playgroud)
在您的aspx页面中调用javascript和样式表就像这样
<script src="scripts/myjavascript.js?v=<%=version %>" type="text/javascript"></script>
<link href="styles/mystyle.css?v=<%=version %>" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
因此,如果您在web.config中将1.0设置为版本= 1.1,您的浏览器将下载最新文件,这有望为您和您的用户带来一些挫败感.
是否有其他解决方案更好,或者这会导致网站出现任何无法预料的问题?
我已经看到很多网站在他们生成的HTML源代码中执行此操作(甚至是stackoverflow本身),使用GET参数访问特定版本的CSS或JavaScript文件.有什么意义呢?
例:
<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=6230">
<script type="text/javascript"
src="http://sstatic.net/so/js/master.js?v=6180"></script>
Run Code Online (Sandbox Code Playgroud)
它只是一种连贯性或最佳实践方式吗?是否只是因为浏览器上具有旧缓存版本的客户端被迫更新其过时版本?