如何从htaccess指令禁用所有缓存(css,js)?

时间:2013-08-14 08:32:59

标签: apache caching

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

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

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

P.S。 :我正在使用远程服务器。

1 个答案:

答案 0 :(得分: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)。

如果没有其他工作,请尝试重命名该文件,看看它是否有效。如果没有,你的问题就在别的地方。