Apache正在缓存图片,我不知道在哪里看。我正在清除浏览器缓存,甚至尝试从未访问过该网站的新浏览器,我得到了旧图像。大约15分钟后,新图像将加载。 Apache甚至会在发送旧文件时报告标题中的正确(新)文件大小。
我不知道在哪里寻找这个。我的服务器是Ubuntu 11.这只在我的本地开发服务器上,当发生这种情况时,认为我的代码无法正常运行令人沮丧。任何帮助将不胜感激。
答案 0 :(得分:2)
我不知道您的图片文件的类型(是NFS还是SMB),但有时在 Apache2 中禁用app.config['LOG_FILE'] = '/var/log/flaskapp/application.log'
指令可以确保这一点,因为与大多数人认为的不同, apache如果文件类型为EnableSendfile
,则执行静态文件缓存。
该指令控制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插件,显示所有请求/响应标头。我发现它对调试标题数据很有帮助。