Laravel 8.x Jetstreamのプロフィール画像が表示されない
概要
Laravel 8.xがリリースされ少し経過しましたが、やる事が溜まっていた為8.xに手が出せませんでした。そこで最近やっと触れる時間が確保できたのでLaravel 8.xと新パッケージのLaravel Jetstreamを触れる機会ができました。
プロフィール画像が表示されない...
Jetstreamでは標準で自分のアカウントのプロフィール画像を設定する事ができます。まだコードを何も書いてないのにこのレベルまで実装されてるなんてすごい、、
しかし、マイページからプロフィール画像となる画像を選択し保存をしてみたのですが表示されません。なぜだ。。。
Google先生に聞いてみる
何が原因か見ているとおそらく画像のパスが適切でない事が判明。では、何か同じ問題が起きてる人がいるかも!と思いGoogle先生に聞いてみることにしました。
あった。やはり同じ問題を抱えている方がいたようです。
解決方法
どの様にJetstreamが表示しているかというのは上記のリンクの回答がとても参考になるかと思います。
Jetstream標準のコードにある記述の様に.envファイル
を直接参照するというのはキャッシュ対象ですし個人的にあまり好きではありません。そこでデプロイ先やAPP_URL
で適時変える必要のないように以下のように取得してみました。
config/filesystems.php
- 'url' => env('APP_URL').'/storage',
+ 'url' => url('').'/storage',
'visibility' => 'public',
],
(この方法が悪手だった際はご指摘していただけると幸いです!)
まとめ
今回Jetstreamのコードを読み解いていくと積極的にコンポーネントを使っている様でなかなか原因のコードがどれなのか掴めなかったですが、結果的に1つのファイルを編集することにより、他のファイルに干渉することなく編集することができたので個人的にもコンポーネント化してみようと思いました。
Author And Source
この問題について(Laravel 8.x Jetstreamのプロフィール画像が表示されない), 我々は、より多くの情報をここで見つけました https://qiita.com/kai0310/items/fc68340dd50df1e1e936著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .