Apache缓存图像

时间:2012-09-18 07:45:34

标签: caching apache2

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

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

2 个答案:

答案 0 :(得分:2)

我不知道您的图片文件的类型(是NFS还是SMB),但有时在 Apache2 中禁用app.config['LOG_FILE'] = '/var/log/flaskapp/application.log' 指令可以确保这一点,因为与大多数人认为的不同, apache如果文件类型为EnableSendfile,则执行静态文件缓存。

来自Apache Core Documentation

  

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

解决方案是将以下行添加到配置文件NSF

/etc/apache2/apache.conf

答案 1 :(得分:0)

尝试显式禁用图像缓存:

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

BTW,Live HTTP Headers是一个很好的Firefox插件,显示所有请求/响应标头。我发现它对调试标题数据很有帮助。