我正在使用carrierwave允许用户上传具有上传后裁剪功能的图像,问题是版本创建后,CDN会立即捕获它们,因为用户裁剪时他们看不到更改,因为必须停用Cloudfront缓存,并且需要相当长的时间才能自行刷新。
我以为将版本号放在文件名上可能是对无效缓存进行排序的好方法,如何使用Carrierwave来实现?
那是最好的方法吗?
最佳答案
我对cloudflare也有同样的问题
这是我的骇客解决方案:将updated_at时间戳记为params。应该与所有CDN一起使用
class AssetUploader < CarrierWave::Uploader::Base
def url(options={})
super.split("?v=")[0]+"?v=#{model.updated_at.to_time.to_i}" rescue super
end
end
关于ruby-on-rails - 使用Carrierwave的CDN(Cloudfront)缓存无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13204978/