ポートフォリオを作成しています。
そこで画像投稿機能を実装したのですが、デフォルトで設定している画像のみうまく表示されません。
gem 'carrierwave' gem 'mini_magick'
インストール済み。
CarrierWave gemに画像と関連付けたモデルを伝えるために
mount_uploader :picture, PictureUploader
を関連モデルに追記。
brew install imagemagick
ImageMagickをインストール済み。
app/uploaders/picture_uploader.rb
class PictureUploader < CarrierWave::Uploader::Base include CarrierWave::MiniMagick storage :file # storage :fog def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end # 画像が未設定の時にデフォルトで設定する画像のURL def default_url(*args) "/images/" + [version_name, "default.png"].compact.join('_') end # 画像サイズ設定 # 詳細表示用:400 * 400の正方形に整形 version :thumb400 do process resize_and_pad(400, 400, background = :transparent, gravity = 'Center') end # 一覧表示用:200 * 200の正方形に中央から切り抜き version :thumb200 do process resize_to_fill: [200, 200, "Center"] end def extension_whitelist %w(jpg jpeg png) end end
関連部分のビューファイル
<%= link_to((image_tag @dish.picture.thumb400.url), dish_path(@dish.id), class: 'dish-picture') if @dish.picture.url.present? %>
Chromeの検証では
Routing Error No route matches [GET] "/images/thumb400_default.png"
http://localhost/images/thumb400_default.png 404 (Not Found)
と表示。
画像は public/images に保存。
開発環境はDockerを使って構築。
各サーバーはNginx,pumaを使用しています。
試したこととして、
assets/images に画像を移動して関連パスを変更 → 表示されず
ファイルの名前を確認しましたが合っていました。
いろんな方のやり方を試したつもりではあるのですが解決できませんでした。
お分かりの方がおりましたら、ご教授願います。
あなたの回答
tips
プレビュー