【问题标题】:How to purge Apache to force browser to clear cache and load files?如何清除 Apache 以强制浏览器清除缓存和加载文件?
【发布时间】:2019-01-02 17:54:45
【问题描述】:

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

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

ExpiresByType text/css A31536000

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

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

ExpiresByType text/css A10

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

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

【问题讨论】:

    标签: apache .htaccess purge


    【解决方案1】:

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

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

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

    【讨论】:

    • 太好了,很高兴我能帮上忙 :)
    【解决方案2】:

    @Joe 的回答非常好,连同@Joe 的回答,我也建议您编辑文件:

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

    在最后,添加以下几行:

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

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

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

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

    【讨论】:

      【解决方案3】:

      也许这不是您想要的,这可能不适用于您的情况,但我认为有用的解决方法是更改​​ html/php 源代码,例如:

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

      到:

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

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

      至少,用户刷新他们的页面(自动或以其他方式)会看到更新后的 css(因为“mystyle.css?1”是独立缓存的,与“mystyle.css”分开)

      【讨论】:

      • 如果不需要每次都强制浏览器清空缓存,可以使用timestamp after ?标记。
      猜你喜欢
      • 2016-02-18
      • 2015-02-18
      • 2017-11-06
      • 2016-10-01
      • 2016-09-01
      相关资源
      最近更新 更多