ホームページ >バックエンド開発 >PHPチュートリアル >自分のビュー内で Laravel ストレージに保存されている画像にアクセスするにはどうすればよいですか?
ビュー内で Laravel ストレージに保存されている画像にアクセスする
Laravel ストレージに保存されているユーザー アバターにアクセスしてビューにレンダリングするには、複数のオプションがあります。 .
方法 1: シンボリックリンク
推奨される方法は、パブリック フォルダーと画像が保存されているストレージ フォルダーの間にシンボリック リンクを作成することです。これにより、パブリック フォルダー内にあるかのように、ストレージ フォルダーのファイルにアクセスできるようになります。シンボリック リンクを作成するには、次のコマンドを使用できます。
php artisan storage:link
これにより、public/storage から storage/app/public へのリンクが作成されます。その後、次のようなパスを使用して画像にアクセスできます。
http://somedomain.com/storage/image.jpg
方法 2: 指定されたルート (シンボリック リンクなし)
シンボリック リンクの作成が不可能な場合は、ストレージフォルダーから画像を読み取って提供するための特定のルートを作成できます。例:
Route::get('storage/{filename}', function ($filename) { // Path to the file $path = storage_path('public/' . $filename); // Check if file exists if (!File::exists($path)) { abort(404); } // Retrieve file contents and mime type $file = File::get($path); $type = File::mimeType($path); // Create a response object $response = Response::make($file, 200); $response->header("Content-Type", $type); // Return the response return $response; });
次のようなパスを使用して画像にアクセスできます:
http://somedomain.com/storage/image.jpg
パフォーマンスに関する考慮事項
次の点に注意することが重要です。ルートを使用してファイルを手動で提供すると、シンボリック リンクを使用する場合と比較してパフォーマンスが低下します。これは、Laravel リクエストのライフサイクル全体がファイルの内容を取得するために実行されるためです。
以上が自分のビュー内で Laravel ストレージに保存されている画像にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。