在视图中访问存储在 Laravel 存储中的图像
要访问存储在 Laravel 存储中的用户头像并在视图中渲染它们,您有多种选择.
方法一:符号式链接
建议的方法是在公共文件夹和存储图像的存储文件夹之间创建符号链接。这允许您访问存储文件夹中的文件,就像它们位于公用文件夹中一样。要创建符号链接,您可以使用以下命令:
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 Storage 中存储的图像?的详细内容。更多信息请关注PHP中文网其他相关文章!