Paperclip图像更新后避免缓存

时间:2009-08-13 07:02:12

标签: ruby-on-rails paperclip

我使用paperclip gem将图像上传到S3存储。它上传成功。

在我的应用程序中,用户可以更改他的个人资料照片。如果用户更改了个人资料照片,新图像将成功上传。问题是浏览器只会在上传后显示上一张照片。只有在按下按钮ctrl + F5强制刷新后才会显示新图像。

注意:图像是使用表单发布的。我想这与缓存有关,但我不知道我可以在哪里更改代码。请帮我解决这个问题。感谢。

1 个答案:

答案 0 :(得分:2)

您使用图像对象的哪些属性作为图像的src?如果您使用user.image.url(假设您拥有User模型并且Paperclip字段名为image),那么S3上图像的URL应该在查询字符串中有一个数字,用于停止任何缓存,以便您立即看到更新的图像。例如,图像的URL应该从

更改
http://s3.amazonaws.com/bucket/images/5/original/pic.gif?1250184309

http://s3.amazonaws.com/bucket/images/5/original/pic.gif?1250184348

应停止浏览器缓存图像。