ruby-on-rails – 使用Carrierwave的CDN(Cloudfront)缓存失效

我正在使用carrierwave来允许用户上传具有上传后裁剪功能的图像,问题是版本被创建并且CDN立即抓住它们,当用户裁剪时他们看不到更改,因为Cloudfront缓存必须无效并且需要相当长的时间才能自己刷新.

我认为在文件名上放置版本号可能是排序缓存无效的好方法,如何使用Carrierwave实现?

这是最好的方法吗?

解决方法

我和cloudflare有同样的问题

这里是我的hackish解决方案:将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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...