如何防止浏览器缓存图片?

0 投票
1 回答
832 浏览
提问于 2025-04-16 03:52

在我的 Pylons 应用中,我写了一个脚本,用来自动生成缩略图,这些缩略图是从通过网址获取的图片生成的。

为了生成缩略图,我使用了 PIL(Python 图像库)。

我想要防止浏览器缓存这些图片。

我不能在图片的链接后面加上 ?[随机数字],因为我放置这个图片的网站必须是静态的。

我尝试发送一些头信息

response.headers['Cache-Control'] = 'no-store,no-cache, must-revalidate,post-check=0, pre-check=0,max-age=0'

但还是不行,浏览器依然缓存了这张图片。

有没有人能帮我解决这个问题?

提前谢谢大家。

1 个回答

0

通常情况下,你需要额外的头信息来让大多数浏览器正常工作,即使这样,有些浏览器还是会缓存内容。即便是支持 Cache-Control 头信息的浏览器(这个是 HTTP 1.1 的一部分),也可能通过一个 HTTP 1.0 的代理连接,而这个代理会去掉一些不标准的头信息。我建议你可以试着添加一个明确的 Expires 头信息,里面写上图片发送的日期和时间(或者直接写一个过去的固定日期),同时再加一个 Pragma 头信息,值设置为 "no-cache"。

response.headers['Cache-Control'] = 'no-store,no-cache, must-revalidate,post-check=0, pre-check=0,max-age=0'
response.headers['Expires'] = 'Wed, 01 Sep 2010 00:00:00 GMT'
response.headers['Pragma'] = 'no-cache'

撰写回答