2013-03-10 174 views
0

我已经找过这个问题的答案,但我不确定我是否问得对。ASP.NET浏览器缓存导致问题

我找什么做开发商做这样的情况:

我开发一个ASP.NET C#应用程序。我有CSS和SCRIPT文件,我正在使用jQuery。我将我的应用程序安装到Web服务器上(或者我有我的客户安装它们)。如果我通过添加一些新的jQuery或其他东西来对脚本文件进行任何更改,我的客户在执行更新后不会产生效果。我假设原因是他们的浏览器在本地计算机上缓存文件,他们现在从服务器下载新文件。

在我的开发环境中,我关闭浏览器并在IE上清除缓存,并在选项中告诉它始终从服务器加载。这种方式发展时,我从来没有缓存数据。

如果我确实做了更改,那么在执行更新后,这些文件会在客户端计算机上刷新,最佳做法是什么?代码中有什么我能做的吗?

我真的不想更改文件名并更新所有脚本引用。

感谢, 科里

回答

1

传统的方法是将一个查询字符串参数追加到参考CSS /脚本文件路径的末尾。例如,如果您将内部版本号附加为查询字符串,则该软件的每个版本都将自行请求相关资源。

+0

哦......我在每个页面URL的末尾添加了一个随机数。那么你在资源URL的末尾说了什么? – 2013-03-10 23:29:35

+0

是的 - 页面加载时会使用'link'连接脚本和css文件的单独请求。如果你追加你的随机数字,你应该很好。 – 2013-03-10 23:32:23

+1

关于随机数或日期的问题是它永远不会缓存脚本/ css文件。如果你添加一个版本号到引用url结尾(例如/script/myscript.js?v=2),只要v等于2,浏览器就会缓存文件。 – 2013-03-10 23:32:42