🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

2206閲覧

Laravel シンボリックリンクしても画像が表示されない

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/02/04 20:15

編集2021/06/29 05:12

はじめまして、Laravelにて開発中のLaravel初心者です。
現在、Dockerにてローカル開発環境を作成して開発しております。
フォームを作成し、画像をアップロードさせる機能を作っていますが、正しく画像が表示されない状態です。
以下、状況を説明致しますので、原因など分かる方いらっしゃいましたらご教授お願い致します。
ローカル開発環境
Laravel Framework 7.29.3
PHP 7.4.8
MySQL 5.7
Redis 5.0
docker-compose 3.7
PC iMac 
OS MacOS10.15.5
エディタ Visual Studio Code バージョン: 1.52.1
コンテナの状況

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7f54017f2644 sample-game-server_nginx "/docker-entrypoint.…" 18 hours ago Up 18 hours 0.0.0.0:80->80/tcp sample-game-server_nginx_1 9a737730ce70 sample-game-server_app "docker-php-entrypoi…" 18 hours ago Up 18 hours 9000/tcp sample-game-server_app_1 3ae0e76220d4 sample-game-server_queue_worker "docker-php-entrypoi…" 18 hours ago Up 17 hours 9000/tcp sample-game-server_queue_worker_1 4636f208b623 phpmyadmin/phpmyadmin "/docker-entrypoint.…" 5 months ago Up 2 weeks 0.0.0.0:9090->80/tcp sample-game-server_phpmyadmin_1 428b9a41774c mysql:5.7 "docker-entrypoint.s…" 5 months ago Up 2 weeks 0.0.0.0:3306->3306/tcp, 33060/tcp sample-game-server_mysql_1 f4fa0d3165ab minio/minio "/usr/bin/docker-ent…" 5 months ago Up 2 weeks 0.0.0.0:9000->9000/tcp sample-game-server_minio_1 9e0fdef068a2 redis:5.0-alpine "docker-entrypoint.s…" 5 months ago Up 2 weeks 0.0.0.0:6379->6379/tcp sample-game-server_redis_1

確認したところ画像ファイルは正しくアップロードされていました。
アップロード先
ローカルサーバ>app>storage>app>public>uploads
色々なサイトを参考にさせて頂き、シンボリックリンクも作成しました

$ php artisan storage:link

生成されたファイル?リンク?
ローカルサーバ>app>public>storage
イメージ説明
public下にstorageというものが生成され、右にリンクっぽいのが表示されるようになりました。
このファイルを触ろうとすると以下のようにシンボリックリンクだというポップアップが表示されます。
イメージ説明
しかし、実際にクリックしようとすると右下にエラーが表示されます。
イメージ説明
その後、属性を調べてみましたが、やはりシンボリックリンクは、正常に作られているように思います。

bash-5.0# ls -l public/storage lrwxr-xr-x 1 root root 23 Feb 4 04:25 public/storage -> /app/storage/app/public

しかし、ブラウザで確認しようとしても画像は表示されません。
パスが違うのかなと思い、色々なパターンを書いてみましたが上手くいきません。

<img src="../storage/uploads/test.jpg"><br> <img src="storage/uploads/test.jpg"><br> <img src="storage/test.jpg">

ちなみにテスト画像の権限は以下の通りです

bash-5.0# ls -l storage/app/public total 324 -rw-r--r-- 1 root root 330146 Feb 4 04:31 moon.jpg drwxr-xr-x 5 root root 160 Feb 4 19:48 uploads
bash-5.0# ls -l storage/app/public/uploads total 1380 -rw-r--r-- 1 root root 747977 Feb 4 01:20 QzILQEPCzYDk9nyTqoMcvGvNjjNeKqlvXPG65mZv.jpeg -rw-r--r-- 1 root root 330146 Feb 4 01:18 mOjOKGpbiny9wT5iajdMWpL8zScxJwdEXGE7EFsi.jpeg -rw-r--r-- 1 root root 330146 Feb 4 19:48 test.jpg

検索できる範囲で調べたのですが、状況が改善されず、なんとかアドバイス頂ければと思います。
お手数ですが、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/02/04 20:30

状況がよく分かりませんが、php artisan storage:link やその他のコマンドは docker の中で実行したと言うことでしょうか? また、ls -l /app/storage/app/public とするとどうなりますか?
退会済みユーザー

退会済みユーザー

2021/02/04 20:58

分かりづらく申し訳ありません。 コマンドはdocker内で行っております。 こちら、ls -l /app/storage/app/publicの結果になります。 ↓ bash-5.0# ls -l /app/storage/app/public total 324 -rw-r--r-- 1 root root 330146 Feb 4 04:31 moon.jpg drwxr-xr-x 5 root root 160 Feb 4 19:48 uploads
Lulucom

2021/02/06 23:18

Laravelなどのバージョンも追記をお願いします(ここではなくご質問に記載をお願いします)
退会済みユーザー

退会済みユーザー

2021/02/07 01:09

ありがとうございます。 本文に追記致しました。
Lulucom

2021/02/07 01:23 編集

> Dockerにてローカル開発環境を作成して 環境についてももう少し詳しく本文に追記をお願いします。もし何処かのサイトを参考にされているのでしたらそれもお願いします。
guest

回答2

0

ベストアンサー

投稿内容が削除できないので編集にて書き換えています

投稿2021/06/24 12:35

編集2021/06/28 13:31
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

assetヘルパーを使うとどうでしょうか。

<img src="{{ asset('storage/uploads/test.jpg') }}">

参考: 公開ディスク

投稿2021/02/05 02:36

Lulucom

総合スコア1899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/02/05 14:52

ご回答ありがとうございました。 <img src="{{ asset('storage/uploads/test.jpg') }}"> 残念ながら、こちら表示されませんでした。
Lulucom

2021/02/05 15:25 編集

上記のようにassetヘルパーは使うこととして、 当てずっぽうなんですが、シンボリックリンクを相対パスで作成してみるとどうでしょうか。 今の絶対パスのシンボリックリンクファイルを削除した後に、以下のように--relativeオプションを付けて実行すると相対パスで作成できると思います。 php artisan storage:link --relative
退会済みユーザー

退会済みユーザー

2021/06/28 13:32 編集

削除
退会済みユーザー

退会済みユーザー

2021/06/28 13:32 編集

削除
Lulucom

2021/02/06 12:52

assetヘルパーを使ったとき、HTMLソースを確認するとそのimgタグのsrcはどのような値になっていますか?
退会済みユーザー

退会済みユーザー

2021/06/28 13:32 編集

削除
Lulucom

2021/02/06 23:17

http://localhost の部分がおかしそうですか?その場合は、APP_URL環境変数を正しそうな値にセットするとどうでしょうか。
Lulucom

2021/02/06 23:28

<img src="{{ Storage::url('storage/uploads/demo.png') }}"> だとどうでしょうか。
退会済みユーザー

退会済みユーザー

2021/06/28 13:32 編集

投稿書き換え
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問