【问题标题】:How to disable all cache (css, js) from htaccess directive?如何从 htaccess 指令中禁用所有缓存(css、js)?
【发布时间】:2013-08-14 16:48:53
【问题描述】:

拥有此页面Page,我似乎无法找到一种方法来真正禁用所有方面的缓存(服务器和客户端)。

我尝试了什么:从 about:config 禁用了 firefox 上的网络 http 缓存(甚至手动清除缓存);在 css url css/style.css?<?php echo time(); ?> 的查询字符串中添加了时间戳;

如您所见,style.css 是空的,但没有对页面进行任何更改(除非我删除链接标签,即 css 请求)。我认为 apache 缓存了文件并且它正在发送缓存的版本。我如何通过 htaccess 告诉 apache 不要发送文件的缓存版本并始终从实际源路径发送它?

附: : 我正在使用远程服务器。

【问题讨论】:

    标签: apache caching


    【解决方案1】:

    一般来说,Apache 不会缓存任何内容,除非你使用 mod_proxy_cache 或类似的东西。

    您的缓存可能发生在其他地方。有几件事可以尝试:

    • 看看你是否使用了代理服务器,这有时会缓存内容
    • 执行 CTRL+SHIFT+R 或 CTRL+F5 通常会强制浏览器重新获取内容,即使它们已经在本地缓存中有文件
    • 使用 Chrome 的网络检查器或 Firebug 并准确检查正在提供的文件版本以及浏览器是否发送“If-Modified-Since”标头和/或服务器是否发送“Expires”标头

    您还可以尝试在 Apache 配置中设置 Expires 指令,以强制代理/浏览器不保留文件的陈旧副本 (https://httpd.apache.org/docs/2.2/mod/mod_expires.html)。

    如果没有其他方法,请尝试重命名文件并查看它是否有效。如果不是,那么您的问题出在其他地方。

    【讨论】:

    • 我重命名了文件并且更改是可见的。您认为缓存在哪里?我应该使用什么 apache 指令?
    • 浏览器或代理。您可能在您所在的位置安装了透明代理。检查 Firebug 或 Chrome 检查器。
    猜你喜欢
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多