在阅读了许多文章和这里的一些问题之后, 我终于成功地激活了Apache mod_expires ,告诉浏览器它必须caching图像1年 。 <filesMatch "\.(ico|gif|jpg|png)$"> ExpiresActive On ExpiresDefault "access plus 1 year" Header append Cache-Control "public" </filesMatch> 谢天谢地,服务器的回应似乎是正确的: HTTP/1.1 200 OK Date: Fri, 06 Apr 2012 19:25:30 GMT Server: Apache Last-Modified: Tue, 26 Jul 2011 18:50:14 GMT Accept-Ranges: bytes Content-Length: 24884 Cache-Control: max-age=31536000, public Expires: Sat, 06 Apr 2013 19:25:30 GMT Connection: close […]
我环顾四周,但一直无法弄清楚我是否应该同时使用一个ETag 和一个Expires头或一个或另一个。 我想要做的是确保我的闪存文件(和其他图像,什么不仅更新时,这些文件的变化。 我不想做任何特殊的事情,比如改变文件名,或者在url的末尾添加一些奇怪的字符,以免被caching。 另外,有什么我需要在我的PHP脚本编程方式做我的PHP脚本来支持这一点,还是所有的Apache?
如何获得Apache上的静态内容(由浏览器caching)而不是{检查新鲜度(每个请求)}? 我正在Apachenetworking服务器上托pipe的网站上工作。 最近,我正在testing一些标题(内容types为不同types的内容),并看到了很多的图像条件请求。 例: 200 /index.php?page=1234&action=list 304 /favicon.ico 304 /img/logo.png 304 /img/arrow.png (etc.) 尽pipe图像文件是静态内容,并且被浏览器caching,但是每当用户打开链接到它们的页面时,它们被有条件地请求,并向其发送“304未修改”。 这是很好的(减less了数据传输),但是这意味着每次页面加载时都会有20多个请求(由于所有这些往返都会导致更长的页面加载时间,即使启用了Keep-Alive和stream水线)也是如此。 我该如何告诉浏览器保留现有的文件,而不是检查更新的版本? 编辑:mod_expires方法工作,甚至与favicon。