我有一个网站,其中从数据库请求许多图像。这些请求看起来像:
http://site.com/image/hash121231
这会在客户端返回200 OK,表示即使基础类型为png且其标题为image / png,它也不会被缓存。
我在httpd.conf中有这个
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 12 months"
ExpiresByType image/jpeg "access plus 12 months"
ExpiresByType image/png "access plus 12 months"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType text/xml "access plus 1 week"
</IfModule>
现在,图像要求如下:
http://site.com/static/image.png
返回304,告诉我它已被缓存。
我已经推断出必须是文件扩展名必须导致问题。我很难重写我的网站块以将扩展应用于图像请求并处理它。有没有办法让Apache检测类型并附加扩展名?还是会有其他原因造成这种情况?
更新
按照本网站的指南进行操作后:http://www.hardanswers.net/dynamic-webpage-caching我的工作主要是工作。
现在唯一的问题是,浏览器似乎每隔一个请求使用缓存主要是这些图像。我不确定这是浏览器的行为,还是与上面示例中的代码工作方式有关。