2009-11-23 13 views
8

私のアプリケーションでdefault_urlを使用しようとしていますが、S3を使用して画像を保存しています。私はそこに置く必要があるか、またはすべてを取得するために偽のイメージを作成する必要があるかどうかはわかりません。rails paperclip S3付きデフォルト画像

私の画像は常にS3からレンダリングされるので、私は自分のパブリックフォルダにいくつかのデフォルト画像を置いても機能するかどうかわかりません。それは今働いていないようです - 私もそこに一つの画像しか持っていません、そして私はそれがサイズ変更する必要があることを知っています。私は手動でそこにサイズ変更された画像を置くことができますが、私はまだデフォルトでどのURLを使用するかわかりません。助けてください:)

答えて

22

私はパブリックフォルダ内のデフォルトイメージでS3とpaperclipを使用します。それはうまく動作します。マイDEFAULT_URL文は次のようになります。

:default_url => '/images/:attachment/missing_:style.png' 

アバターという名前の私の添付ファイル、小規模および大規模なスタイルでのセットアップのために、私は公共のディレクトリにこれらのイメージを作成して置く必要があることを意味している:

を/images/avatar/missing_large.png画像/アバター/ missing_small.png

  • has_attached_file :avatar, 
        :styles => { :small => '60x60#', :large => '300x300#' }, :default_style => :large, 
        :storage => :s3, 
        :default_url => '/images/:attachment/missing_:style.png', 
        :path => "users/:id/avatar/:style.:extension", 
        :bucket => "bucket name", 
        :s3_credentials => { 
        :access_key_id => "access key id", 
        :secret_access_key => "secret access key" 
        }, 
        :url => ":s3_alias_url", # These two are only required when you alias S3 - e.g. want to use cdn.example.com rather than s3.amazonaws.com 
        :s3_host_alias => "my.aws.alias" 
    
  • +0

    が私のために動作しませんでしたあなたの参考のために

    は、または問題が本当にどこかである場合には、ここで私のフルクリップ文です。すべての添付ファイルはS3から提供されましたが、何らかの理由でdefault_urlをアセットパイプライン経由で配信しました。 – bershika

    +0

    avatarという名前にする必要がありますか? – Jwan622

    +0

    完全なパスは必要ありませんでした。どうやらdefault_urlはimagesフォルダを見ているだけです。 – Jwan622

    4

    はこれを試してみる: :default_url => ActionController::Base.helpers.asset_path('missing.png')

    +0

    デフォルトのイメージを変更する必要がある場合、自動的にブラウザのキャッシュが破棄され、新しい更新されたイメージがダウンロードされるため、これは正しい解決方法です。 – Chloe

    関連する問題