Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Docker rails6 mysql nginx 環境だと画像が表示されない!

環境

  • rails 6.0.3.4
  • ruby: 2.7.1
  • Docker for mac
  • mysql 14.14
  • nginx 1.19.5

画像と背景画像が表示されません
<img class="about-img" src="/画像名.png">
画像表示
background-image: url("/画像名.png");
背景画像表示

画像保管場所はpublic配下です。

試しにDocker環境を使わず、普通のrailsで表示できるか試してみたら両右方とも無事表示されました。
Docker環境だと表示できない理由がわかる方がいましたら教えてください!m(_ _)m

0

3Answer

なにか参考にしたサイトやソースはありますか?

Docker でどうなっているのかがわかれば何か答えられるかもしれません。

表示されないとは、どういう状況でしょうか?
404になっている?アプリケーションサーバにはアクセスできている?

1Like

【Rails6】Docker+Rails6+puma+nginx+mysql【環境構築*初心者必見】

こちらの情報があってありがたいです.

こちらの,docker-compose.yml を確認すると,

docker-compose.yml
web:
  volumes:
    - public-data:/webpack/public

volumes:
  public-data:

となっているので,docker 環境ですと,自分のソースにある /public を見るのではなくて,
docker の volume の public-data を参照しそうです.

もし,docker がある程度わかるのでしたら,public-data ボリュームを確認すると良いかと思います.

試してないので,違ってるかもですが,下記のようにvolume にファイルを置くことでも一旦の解決はできそうです.

$ docker cp /public web:/webapp/public

おそらく元記事ですと,/public 配下はソースファイルのものを使う想定になっていないので,
そちらの記述を削除することの方が希望にマッチするかもしれません.

1Like

Comments

  1. 言われてた通りにdocker-compose.ymlの - public-data:/webapp/public を削除することで画像が表示されるようになりました。
    本当にありがとうございます!!!!!!助かりました( T_T)\(^-^ )
  2. 良かったです!!!!

お忙しい中返信ありがとうございます!(^^)
Docker環境はこの方のを参考にさせていただきました。
【Rails6】Docker+Rails6+puma+nginx+mysql【環境構築*初心者必見】
表示されないと言うのは、本来の画像ではなく、山と雲が書かれているファイルのような物に変わってます。
404にはなっていないです。アプリケーションサーバーに関してなんですが、調べてみたのですがアクセスできているかの確認方法がわかりませんでした( ; ; )

0Like

Your answer might help someone💌