我正在使用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/

10-13 01:25