更改可缓存内容

时间:2010-03-11 14:57:51

标签: html apache caching

如何更改可缓存内容以便用户立即获得刷新版本?

我举一个例子:我有一个可以缓存2周的.css文件,所以即使我更改它,用户仍然会得到旧版本,除非按F5。

我知道有一些解决方案,但没有一个是完美的:

      
  • 更改文件名(从main.css到main2.css)。
  •   
  • 添加唯一的网址参数(例如main.css?v = 1)。

我认为这可以通过apache eTags以某种方式解决,我尝试了一次,但没有运气。

2 个答案:

答案 0 :(得分:0)

也许这是关闭的,但是没有弹出apache清除它的缓存?

可能是这样的:/usr/sbin/apachectl graceful

更好的是,您使用apache本身进行缓存,还是像鱿鱼一样使用其他东西?

我正常运行apache',当我更改css或其他文件(脚本之外)时,只需在我的浏览器中加载页面(例如点击“主页”按钮),浏览器< / em>显示旧版本。有时即使我按 F5 也是如此。我知道强制浏览器真正重新加载的唯一方法是使用 Ctrl-Shift-R (在Windows上)或 Cmd-Shift-R (Mac OS)。

答案 1 :(得分:0)

我认为最好的办法是使用第二个选项:在URL中添加一个参数。因此,不要编写css/main.css,而只需编写css/main.css?v=1,然后递增v(如版本中)参数。我看到它一直在使用。

有时会添加时间戳而不是版本,但请注意不要在每次访问页面时更改此时间戳,因为这会导致用户永远不会使用其缓存。