4

Dragonflyを使用していますが、現在のサムネイルと同じようにサイズ変更されるデフォルトの画像が必要です。

現在、次のコードがありますが、Dragonflyがfetch_fileメソッドを使用すると、サムネイルを処理しようとしますが、結果のURLはリンク切れになります。

if listing.image
  image = listing.image.jpg
else
  image = Dragonfly[:images].fetch_file('/toekomst/images/speech-bubble.png')
end  
image_tag image.jpg.thumb(size).url, :class => "framed"

私はこれについてオンラインで多くの助けを見つけることができないので、どんなヒントも大歓迎です!ありがとう!

4

3 に答える 3

6

構成値'allow_fetch_file'をtrueに設定する必要があります-fetch_fileを使用したサーバー経由のリクエストは、セキュリティのためにデフォルトでオフになっています(これは、特にここを除いて文書化されていません:http: //markevans.github.com/dragonfly/Dragonfly /Server.html ただし、これを行う場合は、セキュリティのために、おそらく「protect_from_dos_attacks」をtrueにオンにする必要があります。

Dragonfly[:images].configure do |c|
  # ...
  c.allow_fetch_file = true
  c.protect_from_dos_attacks = true
  c.secret = "some secret here..."
end

お役に立てば幸い

于 2011-08-18T22:49:32.913 に答える
3

モデルアクセサを使用してデフォルトの画像を設定できます。

class Photo
  dragonfly_accessor :image do
    default 'public/images/default.png'
  end
end

ドキュメントを参照してください:http://markevans.github.io/dragonfly/models/#default-content

于 2014-10-29T16:24:42.307 に答える
1

最初にMarkから提供された構成コードを追加することで、これを修正することができました。

その後、ログに次のエラーが表示されていました。

identify: unable to open image `/toekomst/images/speech-bubble.png': No such file or directory @ error/blob.c/OpenBlob/2584.
identify: unable to open file `/toekomst/images/speech-bubble.png' @ error/png.c/ReadPNGImage/3079.
[2011-08-19 10:33:51] ERROR Dragonfly::FunctionManager::UnableToHandle: None of the functions registered with #<Dragonfly::Encoder:0x00000100d66d88> were able to deal with the method call encode(#<Dragonfly::TempObject:0x00000104aa2800 pathname=#<Pathname:/toekomst/images/speech-bubble.png> >,:jpg). You may need to register one that can.

ImageMagickはプロジェクトに関連するパス名を使用できないようであるため、絶対パスを割り当てる必要がありました。このような:

img = Dragonfly[:images].fetch_file(File.join(Rails.root, 'public', 'toekomst', 'images', 'speech-bubble.png'))
于 2011-08-19T08:43:32.127 に答える