0

Apache 正在缓存图像,我不知道去哪里找。我正在清除浏览器缓存,甚至尝试使用从未访问过该站点的新浏览器,但我得到了旧图像。大约 15 分钟后,将加载新图像。Apache 甚至会在发送旧文件时在标头中报告正确的(新)文件大小。

我不知道去哪里找这个。我的服务器是 Ubuntu 11。这仅在我的本地开发服务器上,当这种情况发生时,我的代码无法正常工作令人沮丧。任何帮助,将不胜感激。

4

2 回答 2

2

我不知道您的图像文件的类型(是 NFS 还是 SMB),但有时在Apache2EnableSendfile中禁用指令可以确保因为与大多数人的想法不同,如果文件类型为.NSF

来自Apache 核心文档

该指令控制 httpd 是否可以使用内核的 sendfile 支持将文件内容传输到客户端。默认情况下,当处理请求不需要访问文件中的数据时——例如,交付静态文件时——Apache 使用 sendfile 来交付文件内容而无需读取文件(如果操作系统支持)。

解决方案是将以下几行添加到您的配置文件中/etc/apache2/apache.conf

EnableSendfile off

于 2015-05-09T17:13:41.743 回答
0

尝试明确禁用图像缓存:

SetEnvIf Request_URI "\.(gif)|(jpg)|(png)$" image_request
Header set Cache-Control "private, no-store, no-cache, must-revalidate" env=image_request

顺便说一句,Live HTTP Headers是 Firefox 的一个不错的插件,向您显示所有请求/响应标头。我发现它对调试标头数据有很大帮助。

于 2012-09-18T08:06:05.540 回答