【问题标题】:redirection in djangoDjango中的重定向
【发布时间】:2011-01-10 11:07:11
【问题描述】:

在我的主页上,我有一张关于更改个人资料图片的个人资料图片,我更新了数据库并将页面重定向到 /home 。但是现在当我重定向旧图片时,在刷新按钮被点击之前保持不变。Ami 在这里做错了什么

这是在python代码中

 return HttpResponseRedirect('/home')

这是在 /home 的基本 html 页面中

   <img src="{{photo}}" ></img>

【问题讨论】:

  • 您的img 标记的src 属性是否在重定向后和您点击刷新之间发生变化?如果是这样,那么我敢打赌你的浏览器缓存是问题所在,你应该确保更改个人资料图片会产生一个新的 URL。如果不是,那么您认为有问题。

标签: python django django-templates django-views


【解决方案1】:

也许个人资料图片被浏览器缓存了。有多种方法可以避免:

  • 通过更改它的响应标头来禁用它的缓存。这对于生产来说是一个坏主意,因为图片永远不会被缓存,所以每个页面请求都会获取图片,这会大大增加流量

  • 更新时更改照片的文件名。您可以即使用内容的哈希值或类似SHA1(userid + timestamp of upload)

  • 在图片的响应头中使用HTTP ETag

【讨论】:

    【解决方案2】:

    我读到了一个技巧,就是这样写:

    &lt;img src="{{photo}}?version={{version}}"&gt;&lt;/img&gt;

    其中 version 是您在文件更新时增加的新版本号(您也可以使用 {{photo.file}}{{photo.version}})。 这样 URL 就会不同,浏览器不会使用缓存的版本。

    【讨论】:

    • +1 我经常使用这个。 ?v={{ hashed_upload_timestamp }} 很好。
    • 是的,时间戳很好,哈希(在创建时计算)更好
    猜你喜欢
    • 2019-11-12
    • 2013-09-11
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 2018-07-19
    • 1970-01-01
    相关资源
    最近更新 更多