【问题标题】:Rails 4 carrierwave default_url not using cdnRails 4carrierwave default_url 不使用cdn
【发布时间】:2014-05-02 14:25:50
【问题描述】:

我正在使用carrierwave 将图像上传到s3。这工作得很好,花花公子。但是 default_url 不是。

在我的上传器中,我将 default_url 设置为使用 rails 资产管道。

def default_url
  ActionController::Base.helpers.asset_path("panOpen_v2/" + [version_name, "panopen_beta_logo_flat_white_med.png"].compact.join('_'))
end

这样就可以了。

src="/assets/panOpen_v2/panopen_beta_logo_flat_white_med-1ed9964153466e88fe64c422dbab98ca.png"

它会创建到图像的链接,但它仍然链接到我的服务器而不是我的 CDN。我的所有其他资产都可以很好地链接到我的 CDN,所以我知道 rails 与我的 CDN 设置得很好。

有人有什么想法吗?

我曾考虑在其中添加 cdn url 用于 prod 和 staging env,但我不应该这样做。也许这是唯一的方法?

【问题讨论】:

    标签: ruby-on-rails-4 amazon-s3 carrierwave cdn fog


    【解决方案1】:

    我用我想做的事情修复了它。这就是在 prod 和 staging env 期间添加 CDN url。

    def default_url
      if !(Rails.env.development? || Rails.env.test?)
        "#{Settings.asset_host}#{ActionController::Base.helpers.asset_path("panOpen_v2/" + [version_name, "panopen_beta_logo_flat_white_med.png"].compact.join('_'))}"
      else
        ActionController::Base.helpers.asset_path("panOpen_v2/" + [version_name, "panopen_beta_logo_flat_white_med.png"].compact.join('_'))
      end
    end
    

    Settings.asset_host 是我的 CDN 的 URL。

    这不是一个完美的解决方案。我宁愿不必那样做。所以如果有人有更好的主意,我很乐意听到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-25
      • 2014-11-29
      • 2017-06-07
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      相关资源
      最近更新 更多