如何清除Apache以强制浏览器清除缓存并加载文件?

时间:2018-07-25 20:09:39

标签: apache .htaccess purge

我编辑了一些CSS文件,需要Apache清除所有浏览器上的缓存,以强制重新加载整个网站。我过去曾使用cloudflare,他们有一个名为“清除所有文件”的按钮。当我更改CSS文件时,我依靠此。

.htaccess文件中包含以下内容:

ExpiresByType text/css A31536000

我知道这导致我的缓存保留在旧文件上。我的主机提供商说我没有将设置应用于从服务器缓存文件。

我进入了.htaccess文件,并将此行更改为:

ExpiresByType text/css A10

尝试手动“清除”我的文件并强制重新加载css文件。不幸的是,这没有用。

有人知道我可以在htaccess文件中执行什么操作来强制用户的浏览器重新加载此CSS文件吗?

3 个答案:

答案 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”分开)