1

イメージには CarrierWave を使用し、Amazon Cloudfront を CDN (S3 なし) として使用しています。

問題は、次のようなものです。@user.image_urlアセットを適切に構成したにもかかわらず、非 CDN URL を返します。

  # /config/environments/production.rb
  config.action_controller.asset_host = Proc.new { |source, request|
    if ['jpg','jpeg','png','gif','bmp'].include?(source.split('.').last)
      unless request.ssl?
        "http://cdn.domain.com"
      else
        "https://ge95v2x8h9t3.cloudfront.net"
      end
    end
  }

CarrierWaveasset_hostが他のアセットと同じように私の proc を使用するようにするにはどうすればよいですか?

4

1 に答える 1

1

カスタムasset_hostを使用するようにcarrierwaveを構成できます(config.fog_host... readmeに記載されています)。文書化されていませんが、Proc (または :call に応答するもの) を使用して、実行時に文字列を決定することもできます。

https://github.com/jnicklas/carrierwave/blob/master/lib/carrierwave/storage/fog.rb#L107

config.fog_hostRails の を直接指す方法はよくわかりconfig.asset_hostませんが、それへの参照を取得する方法があるに違いないと確信しています。ただし、それが開発中にどれほど役立つかはわかりません...アセットをローカルホストから提供し、アップロードをクラウドフロントから提供する必要があるでしょう。

于 2012-08-07T17:25:55.380 に答える