【问题标题】:django: Force cache-refresh after updatedjango:更新后强制缓存刷新
【发布时间】:2020-09-17 00:14:42
【问题描述】:

更新模型实例后,我重定向回此实例的“详细信息页面”。模型的一部分是从模型内容生成的图像。 在此重定向中,我想强制浏览器从服务器重新加载图像。我用标题尝试过,但不起作用:

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

因为我假设重定向会丢失标头。

如何强制页面重新加载图像,但只有在用户从更新页面返回之后?

编辑:

图像在 img 标记中提供。 src 实际上指向一个服务器端点,该端点从 src 链接中的“id”生成图像。然后图像应该被缓存,直到它发生变化。

【问题讨论】:

    标签: python django cache-control http-redirect


    【解决方案1】:

    您如何提供图片?一个好主意是在图像的文件名末尾添加一个哈希,然后在更新图像时更改该哈希。这样,当图像更新时,浏览器会强制重新加载图像。

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

    【讨论】:

      【解决方案2】:

      我已经决定使用 djangos

      @last_modified(last_modified_func)
      

      装饰师。见here。 该函数可以接受与修饰方法相同的参数(例如,在我的例子中是实体 id)。有了它,我可以简单地在数据库中查找最后修改的元数据,django 将处理请求中的 If-modified-since 或 If-unmodified-since 标头,并返回未修改响应或新图像。

      【讨论】:

        猜你喜欢
        • 2015-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-08
        • 1970-01-01
        • 2011-04-21
        • 2016-05-18
        • 1970-01-01
        相关资源
        最近更新 更多