take95
@take95

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

herokuで画像が反映されない

Q&A

Closed

解決したいこと

herokuにデプロイ後、seedファイルを反映させても、画像が表示されない。(ローカル環境では正しく表示されています)

現状は以下のとおりです。
・seedファイルのデータに画像をアタッチさせる(Avtive_strage使用)
・エラー文は以下のとおり

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

・検証ツールで画像を確認してみてもNothing to previewとなってしまっている
725e4fb561df2771f080959675a01beb.png

・画像はpublic/imagesの中に入っている
・ローカルでは画像は表示されている
・ログを確認したところstatus=500 との記載のみで解決策を見出せない

該当のソースコード

seeds.rb
require "csv"

CSV.foreach('db/store.csv', headers: true) do |row|
  laundry = Laundry.new(
    name: row['name'] ,
    address: row['address'],
    opening_date: row['opening_date'],
    open_time: row['open_time'],
    close_time: row['close_time'],
    shoe_washing: row['shoe_washing'],
    futon_washing: row['futon_washing'],
    dryer: row['dryer'],
    washing_machine: row['washing_machine']
  )
  laundry.image.attach(io: File.open('public/images/image.jpg'), filename: 'image.jpg')
  laundry.save
end

以下show.html.erb、該当部分の記述

show.html.erb
 <%= image_tag @laundry.image.variant(resize: '300x300'), class: 'store-image' %>

試したこと

1.以前は画像をapp/assets/images内に配置していましたが、public/imagesに変更、それに伴いseedファイルのパスも変更。画像は表示されないままでした。(herokuでdbのリセットも行いましたが変化なし)

エラー内容から画像のパスが正しくないのではないかと考えているのですがどのように修正をすれば良いのかがわからない状態です。
なにか見当がつく方がいましたらアドバイスをお願いいたします。

補足情報(FW/ツールのバージョンなど)

ruby '2.6.5'
rails '6.0.3'
DBはローカルも本番環境もmysqlを使用。

0

1Answer

そもそもpublic/imagesにある画像がデプロイできていない可能性はないでしょうか?

0Like

Comments

  1. @take95

    Questioner

    ご返答ありがとうございます。
    質問をクローズしておらず大変申し訳ないのですが、画像の保存先をS3に変更したことで解決しました。
    コンソールを立ち上げてherokuのデータを確認したところ画像は正しく保存されていたのですがなぜか表示がされていませんでした。
    S3に保存したところ解決はしたのですが、なぜ表示されていなかったのかが未だに疑問点ではあります。
  2. そうだったんですね。
    解決したとのことでよかったです!
    お力になれず申し訳ないです
  3. @take95

    Questioner

    いえいえ、こちらが質問を閉じておらず手間をかけさせてしまい申し訳ありませんでした。
    ありがとうございました。

Your answer might help someone💌