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

How to purge Apache to force browser to clear cache and load files?

我编辑了一些 css 文件,需要 Apache 进行清除以清除所有浏览器上的缓存,从而强制重新加载整个站点。我过去使用过 cloudflare,他们有一个名为 "Purge all files" 的按钮来执行此操作。当我进行 css 文件更改时,我依赖于此。

我的 .htaccess 文件中有以下内容:

ExpiresByType text/css A31536000

据我所知,这导致我的缓存保留了旧文件。我的主机提供商说我没有将设置应用于我服务器的缓存文件。

我进入我的 .htaccess 文件并将这一行更改为:

ExpiresByType text/css A10

试图手动 "purge" 我的文件并强制重新加载 css 文件。不幸的是,这没有用。

有谁知道我可以在我的 htaccess 文件中做什么来强制用户的浏览器重新加载这个 css 文件?

我知道保罗的这种痛苦。尝试将此添加到您的 .htaccess:

ExpiresActive On
ExpiresDefault A1
Header append Cache-Control must-revalidate

我在对网站进行更改时使用它,它似乎运行良好。但是,对于以前缓存过您的网站的人,我认为没有真正的强制刷新方法。

@Joe 的回答非常好,加上@Joe 的回答,我也建议你编辑文件:

vi /etc/apache2/sites-available/000-default.conf

最后,添加以下行:

<Location "/var/www/html">
        CacheDisable On
        CacheStoreNoStore On
</Location>

通过这种方式,您可以确保永远不会缓存任何内容。

注意:建议删除客户端 Web 浏览器中的缓存,以防在此解决方案之前存在缓存。

@Joe 和我自己提供的解决方案是最好的!什么都不会被缓存!

也许这不是您要查找的内容,并且这可能不适用于您的情况,但我发现有用的解决方法是将 html/php 来源更改为:

<link rel="stylesheet" href="mystyle.css">

至:

<link rel="stylesheet" href="mystyle.css?1">

显然,下次发生这种情况时,您只需增加“?”后面的数字即可。

至少,用户刷新页面(自动或其他方式)会看到更新后的 css(因为“mystyle.css?1”与“[=21=”分开缓存]")