前提・実現したいこと
独学でRecipesiteアプリを開発しています。
gem carrierwaveを使用し、画像のseedデータを入れていました。ローカル環境では表示される画像が
本番環境ではseedデータの画像が表示されません。
本番環境でのみ画像が表示されない
より、ローカル環境と本番環境とでは画像ディレクトリの場所が変わると記載があったため、
おそらく画像の相対パスの問題だと思われるのですが、どのように記入すれば表示されるのでしょうか。
発生している問題・エラーメッセージ
EC2のターミナルにて
[ec2-user@IPアドレス Recipesite]$ bundle exec rake db:seed RAILS_ENV=production rake aborted! Errno::ENOENT: No such file or directory @ rb_sysopen - /home/ec2-user/Recipesite/public/assets/categories/meat.jpg
該当のソースコード
db/seedsにて
Rails
1Category.create!( 2 [ 3 { 4 category_image: open("#{Rails.root}/public/assets/categories/meat.jpg") 5 } 6]
top.html.erb
html
1<ul> 2 <% @categories.each do |category| %> 3 <%= link_to category_path(category) do %> 4 <li> 5 <p><%= image_tag category.category_image.to_s, size: "200x200" %></p> 6 </li> 7 <% end %> 8 <% end %> 9 </ul>
画像 meat.jpはローカル環境の
app/assets/images/categories/meat.jpg
に有。
本番環境では
/home/ec2-user/Recipesite/public/assets/categories/meat-数字.jpg
に有
試したこと
db/seeds
Rails
1Category.create!( 2 [ 3 { 4 category_image: open("#{Rails.root}/app/assets/images/categories/meat.jpg") 5 } 6]
で記入し、もう一度本番環境で
$ bundle exec rake db:seed RAILS_ENV=production
したら、上記のエラーは出てこなくなったが、
が表示され解決には至らなかった。
他に試した事としては
$ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop
$ bundle exec rake db:create RAILS_ENV=production
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake db:seed RAILS_ENV=production
も実行し、他、
$bundle exec rails assets:precompile RAILS_ENV=production
も実行しましたが解決できませんでした。
どなたか分かる方がいらっしゃいましたら対応をお願い致します。
あなたの回答
tips
プレビュー