2011-01-10 80 views
1

在我的主页我有一个更改个人资料照片的个人资料照片我更新数据库并将其重定向到/ home页面。但现在,当我重定向老照片保持不变,直到刷新按钮hit.Ami做错什么这里在django重定向

这是Python代码

return HttpResponseRedirect('/home') 

这是基本的HTML页面在/ home

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

您的`img`标签的`src`属性在重定向和您刷新后发生变化吗?如果是这样,那么我打赌你的浏览器缓存就是问题所在,你应该确保修改个人资料图片会产生一个新的URL。如果不是,那么你认为某些事情是错误的。 – 2011-01-10 11:11:07

回答

1

也许配置文件图片被浏览器缓存。有多种方法可以避免它:

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

  • 改变照片的文件名时,它的更新。你可以即使用内容的散列值或类似SHA1(userid + timestamp of upload)

  • 东西在画面

1

的响应报头使用HTTP ETag有一个窍门,我读了由以书面形式是这样的:

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

其中version是你当你的文件被更新,增加新的版本号(你可以选择使用{{photo.file}}{{photo.version}})。 这样,URL将会不同,浏览器将不会使用缓存版本。

+1

+1我经常使用它。 ?v = {{hashed_upload_timestamp}}很好。 – 2011-01-11 02:35:27