新版本上传到服务器后,css文件缓存点被清除

时间:2010-11-24 09:32:13

标签: asp.net css caching

嗨我有一点问题

我上传了我的网站的新版本。 一些用户抱怨他们看到一些页面我改变得非常错误。

无论如何,在刷新后他们认为没问题。

我认为是因为我的css文件早些时候被他们缓存了...... 为什么浏览器在首次加载时不自行下载css文件?..

他应该知道css文件改变了dosnt吗?

提前致谢

4 个答案:

答案 0 :(得分:5)

@ UpTheCreek的方法可以正常工作。但是,只需更改呼叫而不更改文件名就可以省去一些麻烦。

screen.css?v=12

这也会强制重新加载,但只需要您更改通话。

答案 1 :(得分:1)

  

他应该知道css文件发生了变化   dosnt他?

不一定。如果您的css文件已经从服务器发送了max-age指令和/或将来的远期日期,那么浏览器会被指示不向您的资源发出条件请求(请参阅http://developer.yahoo.com/blogs/ydn/posts/2007/05/high_performanc_2/),以便他们考虑缓存中的资源仍然有效。

在这种情况下,为了强制执行新请求,您可能需要重命名该文件或附加一个随机查询字符串,例如file.css?848372034,或者更好的是附加file.css?v=1

等版本注释

答案 2 :(得分:0)

如果安装Web开发人员工具栏(适用于Firefox或IE),则可以禁用缓存。我在开发网站时使用它。每次进行小修改时,它都可以节省您重命名CSS的费用。

答案 3 :(得分:0)

如果您使用的是Apache,请尝试在根目录中添加.htaccess:

<FilesMatch ".(css|jpg|gif|ico|jpeg|png|html)$"> 
ExpiresActive On 
Header set Expires "Mon, 22 Nov 2010 06:00:00 GMT" 
</FilesMatch> [L]

仅包括您不希望缓存的文件类型,例如:

<FilesMatch ".(css|js)$">

如果您知道何时需要更改文件,请设置将来的日期 - 如果不定期刷新这些文件,您的网站会更快。

如果您没有设置到期日期,浏览器会按照其年龄按比例缓存这些文件。