首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >强制浏览器在asp.net应用程序中获取最新的js和css文件

强制浏览器在asp.net应用程序中获取最新的js和css文件
EN

Stack Overflow用户
提问于 2010-02-03 00:49:20
回答 16查看 116.6K关注 0票数 109

有些浏览器会缓存js和css文件,除非您强制刷新,否则无法刷新它们。最简单的方法是什么?

我刚刚实现了这个似乎有效的解决方案。

在页面上声明一个版本变量

代码语言:javascript
复制
  public string version { get; set; }

从web.config密钥中获取版本号

代码语言:javascript
复制
 version = ConfigurationManager.AppSettings["versionNumber"];

在aspx页面中调用javascript和样式表,如下所示

代码语言:javascript
复制
<script src="scripts/myjavascript.js?v=<%=version %>" type="text/javascript"></script>
<link href="styles/mystyle.css?v=<%=version %>" rel="stylesheet" type="text/css" />

因此,如果您在web.config中设置version = 1.1,从1.0开始,您的浏览器将下载最新的文件,这有望为您和您的用户节省一些麻烦。

有没有其他更好的解决方案,或者这会给网站带来任何不可预见的问题?

EN

回答 16

Stack Overflow用户

发布于 2010-02-03 00:53:16

您的解决方案起作用了。事实上,它相当受欢迎。

即使是Stack Overflow也使用类似的方法:

代码语言:javascript
复制
<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=6184"> 

其中v=6184可能是SVN修订号。

票数 28
EN

Stack Overflow用户

发布于 2015-02-27 01:20:39

如果您为JS/ ASP.NET使用包,CSS将为您处理此问题。它会自动以GUID的形式附加一个版本号到你的包中,并且只在包被更新时更新这个GUID (也就是任何源文件都有变化)。

如果您有大量的JS/CSS文件,这也会有所帮助,因为它可以极大地缩短内容加载时间!

See Here

票数 18
EN

Stack Overflow用户

发布于 2018-07-26 22:39:23

我想要一个简单的一行来使路径唯一,以破坏缓存。这对我很有效:

代码语言:javascript
复制
<script src="scripts/main.js?bust_js_cache=<%=System.IO.File.GetLastWriteTime(Server.MapPath("scripts/main.js")).ToString("HH:mm:ss")%>" type="text/javascript"></script>

如果文件自上次加载到页面以来已被修改,则浏览器将提取更新后的文件。

它从.js文件生成last modified戳记,并将其放入其中,而不是放入可能不易访问的版本中。

代码语言:javascript
复制
<script src="scripts/main.js?bust_js_cache=10:18:38" type="text/javascript"></script>

另一种选择是获取文件的校验和。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2185872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档