如何更改可缓存内容以便用户立即获得刷新版本?
我举一个例子:我有一个可以缓存2周的.css文件,所以即使我更改它,用户仍然会得到旧版本,除非按F5。
我知道有一些解决方案,但没有一个是完美的:
我认为这可以通过apache eTags以某种方式解决,我尝试了一次,但没有运气。
答案 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
(如版本中)参数。我看到它一直在使用。
有时会添加时间戳而不是版本,但请注意不要在每次访问页面时更改此时间戳,因为这会导致用户永远不会使用其缓存。