Django 中的重定向
在我的主页中,我有一个关于更改个人资料图片的个人资料图片,我更新数据库并将页面重定向到 /home 。但现在,当我重定向时,旧图片保持不变,直到点击刷新按钮。Ami 在这里做错任何事情
这是在 python 代码中
return HttpResponseRedirect('/home')
这是在 /home 的基本 html 页面中
<img src="{{photo}}" ></img>
In my home page i have a profile pic on changing the profile pic i update the DB and redirevt the page to /home . But now when i redirect the old picture remains the same till refresh button is hit.Ami doing anything wrong here
This is in the python code
return HttpResponseRedirect('/home')
This is in the base html page in /home
<img src="{{photo}}" ></img>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
也许个人资料图片被浏览器缓存了。有多种方法可以避免它:
通过更改响应标头来禁用缓存。对于生产来说,这是一个坏主意,因为图片永远不会被缓存,因此每个页面请求都会获取图片,这会大大增加流量
在更新时更改照片的文件名。您可以使用内容的哈希值或诸如
SHA1(用户 ID + 上传时间戳)
之类的内容
使用 HTTP ETag 在图片的响应头
中
Maybe the profile picture is cached by the browser. There are multiple ways to avoid it:
disable caching for the by changing the response headers for it. This is a bad idea for production because the picture would never be cached, so every page-request would fetch the picture, which massively increases the traffic
change the filename of the photo when it is update. You could i.e. use a hash of the content or something like
SHA1(userid + timestamp of upload)
use a HTTP ETag in the response header of the picture
我读过一个技巧,其中包括编写如下内容:
其中版本是文件更新时增加的新版本号(您也可以使用
{{photo.file}}
和{{photo.version}}
)。这样 URL 就会不同,浏览器将不会使用缓存的版本。
There's a trick I read that consists in writing something like:
<img src="{{photo}}?version={{version}}"></img>
Where version is a new version number that you increase when your file is updated (you could alternatively use
{{photo.file}}
and{{photo.version}}
).This way the URL will be different and the browser will not used the cached version.