1

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

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

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

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

4

1 回答 1

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)。

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

于 2013-08-14T08:48:53.680 回答