django:更新后强制 cache-refresh

django: Force cache-refresh after update

更新模型实例后,我重定向回该实例 "detail page"。模型的一部分是从模型内容生成的图像。 在此重定向中,我想强制浏览器从服务器重新加载图像。我用 headers 试过了,但没用:

response = HttpResponseRedirect('/target/path/')
response['Cache-Control'] =  'no-cache'
response['Pragma'] = 'no-cache'
return response

因为我假设重定向丢失了 headers。

如何强制页面重新加载图像,但只能在用户 returns 从更新页面后重新加载?

编辑:

图片在 img 标签中提供。 src 实际上指向一个服务器 end-point,它从 src link 中的 "id" 生成图像。然后图像应该被缓存直到它改变。

您是如何投放图片的?一个好主意是在图像的文件名末尾添加一个散列,然后在更新图像时更改该散列。这样,当图像更新时,浏览器将被迫重新加载图像。

您甚至可以只使用文件上次更新时间的时间戳??

我决定使用 djangos

@last_modified(last_modified_func)

装饰师。参见 here。 该函数可以接受与装饰方法相同的参数(例如,在我的例子中是实体 ID)。这样我就可以简单地在数据库中查找最后修改的元数据,django 将处理请求中的 If-modified-since 或 If-unmodified-since headers 和 return 未修改响应或新图像。