お世話になっております。
現在、Nuxt.jsとrailsにてスケジュール作成アプリを作っており、スケジュールの投稿に画像の添付機能を加えているところです。
投稿時に画像を設定した場合は、投稿後にそのページへいくと下記のURLへリクエストをしており、期待通り画像が表示されます。
http://localhost:3001/uploads/schedule/s_image/274/tech001.png
しかし、画像を設定しなかった場合はリクエストURLが
GET http://localhost:3000/fallback/default.png 404 (Not Found)
となり、画像を得られません。
私はポートが3001と3000で違うためだと考えておりますが、変更方法がわかりません。
carrierwaveの設定は以下です。
ruby
1# carrierwave.rb 2 3CarrierWave.configure do |config| 4 config.asset_host = 'http://localhost:3001' 5end
アップローダーのファイルは以下です。
ruby
1# app/uploaders/schedule_image_uploader.rb 2 3class ScheduleImageUploader < CarrierWave::Uploader::Base 4 storage :file 5 6 def store_dir 7 "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 8 end 9 10 def default_url(*_args) 11 # For Rails 3.1+ asset pipeline compatibility: 12 ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) 13 # "/images/fallback/" + [version_name, "default.png"].compact.join('_') 14 end 15 16 def extension_whitelist 17 %w(jpg jpeg png) 18 end 19end
railsのpublic以下のディレクトリ構造は以下です。
~/a/b/public ❯❯❯ tree . ├── fallback │ └── default.png ├── images │ └── fallback │ └── default.png ├── robots.txt └── uploads ├── schedule │ └── s_image │ └── 274 │ └── tech001.png
やってみたこと
以下のようにアップローダーの保存先を変えて見ましたが、やはり同じくポートが3000で404エラーが返ってきました。
ruby
1def default_url(*_args) 2 # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) # コメントアウト 3 "/images/fallback/" + [version_name, "default.png"].compact.join('_') # コメントを外した 4end 5
バージョン情報
ruby 2.6.3 rails (6.0.3.4) carrierwave (2.1.0)
お忙しいとは存じますが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/12 04:27