使用Apache进行网站图像缓存

我怎样才能获得Apache上的静态内容{被浏览器缓存}而不是{检查新鲜度{每次请求}}?


我正在Apache webserver上托管的网站上工作。最近,我正在使用标题(针对不同类型的内容的Content-Type)进行测试,并看到了很多对图像的条件请求。例:


200 /index.php?page=1234&action=list

304 /favicon.ico

304 /img/logo.png

304 /img/arrow.png

(etc.)

虽然图像文件是静态内容并且由浏览器缓存,但每次用户打开链接到它们的页面时,都会有条件地请求它们,并向其发送“304 Not Modified”。这很好(传输的数据较少),但这意味着每次页面加载会产生20多个请求(由于所有这些往返行程导致页面加载时间更长,即使启用了Keep-Alive和流水线操作)。


如何告诉浏览器保留现有文件而不检查更新版本?


编辑:mod_expires方法工作,即使使用favicon。


Qyouu
浏览 647回答 3
3回答

犯罪嫌疑人X

如果您Expires在静态图像的http响应中设置标题,则在首次下载之后将不会再次检查该图像,直到指定的时间过去为止,例如,如果我现在从服务器下载文件,则将其Expires标题为Expires: Fri, 1 Jan 2010 00:00:01 GMT 然后我的浏览器将不会再次从你的服务器中查找它,直到2010年,除非我清除我的缓存/进行强制刷新(在Windows上按Ctrl + F5)。有一个简单的介绍,这一设置在这里,和其他可能有用的反应在列表维基百科
打开App,查看更多内容
随时随地看视频慕课网APP