2

我有一个从数据库请求许多图像的站点。这些请求看起来像:

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我已经得到它的大部分工作。

现在唯一的问题是,浏览器似乎每隔一个请求就使用缓存来处理这些图像。我不确定这是浏览器的行为,还是与上面示例中代码的工作方式有关。

4

0 回答 0