LaravelでCPanel上でストレージ画像が表示されない問題の解決方法


  1. ファイルパーミッションを確認する: Laravelのストレージディレクトリとそのサブディレクトリは、正しいパーミッションを持っている必要があります。CPanel上でファイルパーミッションを確認し、適切な権限(通常は755または777)が設定されていることを確認してください。

  2. ディスクの設定を確認する: Laravelのconfig/filesystems.phpファイルを開き、ディスクの設定を確認します。通常、publicディスクが画像の表示に使用されます。ディスクの設定が正しいことを確認し、ドライバが「local」または「public」に設定されていることを確認してください。

  3. シンボリックリンクを生成する: CPanel上でシンボリックリンクを生成する必要がある場合があります。Laravelのプロジェクトルートで、以下のArtisanコマンドを実行してシンボリックリンクを生成します。

    php artisan storage:link

    これにより、publicディスク内のストレージディレクトリへのシンボリックリンクが作成されます。

  4. 画像の保存と表示: 画像をアップロードする際に、適切なストレージディスクを指定する必要があります。以下は、publicディスクに画像を保存する例です。

    $path = $request->file('image')->store('public/images');

    画像を表示する際には、URLヘルパー関数を使用して正しいパスを生成します。

    <img src="{{ asset('storage/images/image.jpg') }}" alt="Image">