我编辑了一些CSS文件,需要Apache清除所有浏览器上的缓存,以强制重新加载整个网站。我过去曾使用cloudflare,他们有一个名为“清除所有文件”的按钮。当我更改CSS文件时,我依靠此。
.htaccess文件中包含以下内容:
ExpiresByType text/css A31536000
我知道这导致我的缓存保留在旧文件上。我的主机提供商说我没有将设置应用于从服务器缓存文件。
我进入了.htaccess文件,并将此行更改为:
ExpiresByType text/css A10
尝试手动“清除”我的文件并强制重新加载css文件。不幸的是,这没有用。
有人知道我可以在htaccess文件中执行什么操作来强制用户的浏览器重新加载此CSS文件吗?
答案 0 :(得分:2)
我知道保罗很痛苦。尝试将其添加到您的.htaccess
:
ExpiresActive On
ExpiresDefault A1
Header append Cache-Control must-revalidate
当我对网站进行更改时,我会使用它,并且看起来效果很好。但是,对于以前缓存过您网站的用户,我认为没有真正的方法可以强制刷新。
答案 1 :(得分:0)
@Joe答案非常好,与@Joe答案一起,我也建议您编辑文件:
vi /etc/apache2/sites-available/000-default.conf
最后,添加以下行:
<Location "/var/www/html">
CacheDisable On
CacheStoreNoStore On
</Location>
通过这种方式,您可以确保永远不会缓存任何内容。
注意:如果此解决方案之前存在缓存,建议在客户端Web浏览器中删除缓存。
@Joe和我自己提供的解决方案是最好的!什么都不会缓存!
答案 2 :(得分:0)
也许这不是您要查找的内容,这可能不适用于您的情况,但我认为有用的解决方法是从以下内容更改 html/php 源:
<link rel="stylesheet" href="mystyle.css">
到:
<link rel="stylesheet" href="mystyle.css?1">
显然,下次发生这种情况时,您可以增加“?”后面的数字。
至少,用户刷新他们的页面(自动或以其他方式)会看到更新的 css(因为“mystyle.css?1”是独立缓存的,与“mystyle.css”分开)