ビューレンダリングのために Laravel ストレージにアップロードされた画像へのアクセス
Laravel アプリケーションでは、ユーザーのアバターやその他のメディアアセットがストレージディレクトリ内に保存される場合があります。これらの画像にアクセスしてビューに表示するには、いくつかのオプションがあります。
1.シンボリック リンクを作成する
Laravel 5.3 以降では、artisan storage:link コマンドにより、public/storage から storage/app/public へのシンボリック リンクが作成されます。これにより、前のパス:
http://somedomain.com/storage/image.jpg
2 を使用して、後者のディレクトリ内のファイルにアクセスできるようになります。ファイル サービスにカスタム ルートを使用する
シンボリック リンクを作成できない場合は、画像を読み取って提供するためのカスタム ルートを作成できます。
Route::get('storage/{filename}', function ($filename) { $path = storage_path('public/' . $filename); if (!File::exists($path)) { abort(404); } $file = File::get($path); $type = File::mimeType($path); $response = Response::make($file, 200); $response->header("Content-Type", $type); return $response; });
このルートでは、次のパスを使用してファイルにアクセスできます:
http://somedomain.com/storage/image.jpg
3.介入画像ライブラリを使用する (オプション)
介入画像ライブラリを使用する場合は、その response() メソッドを利用できます:
Route::get('storage/{filename}', function ($filename) { return Image::make(storage_path('public/' . $filename))->response(); });
重要な注意事項:
手動でファイルを処理すると、HTTP サーバーに直接処理させる場合と比べてパフォーマンスが低下する可能性があります。したがって、最適なパフォーマンスを実現するための推奨方法としてシンボリック リンクを検討してください。
以上が最適なパフォーマンスを得るためにLaravelビューで保存された画像にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。