ホームページ >バックエンド開発 >PHPチュートリアル >自分のビュー内で Laravel ストレージに保存されている画像にアクセスするにはどうすればよいですか?

自分のビュー内で Laravel ストレージに保存されている画像にアクセスするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-08 06:30:11561ブラウズ

How Can I Access Images Stored in Laravel Storage Within My Views?

ビュー内で 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。