背景:
Laravel 的存储机制允许您存储用户头像和其他文件,但这些文件通常位于 /storage 文件夹中,无法通过以下方式访问该文件夹指向 /public 文件夹的常规 HTTP 请求。
解决方案:
要在视图中显示存储中的用户头像,有两种主要方法:
1。创建符号链接
建议的方法是使用以下命令在 /public/storage 文件夹和 /storage/app/public 文件夹之间创建符号链接:
php artisan storage:link
这将创建一个快捷方式,允许您访问存储文件,就像它们位于 /public 文件夹中一样。然后,您可以按如下方式访问视图中的头像:
<img src="{{ asset('storage/avatars/' . $user->avatar) }}">
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; });
然后您可以使用 /storage 路由访问视图中的头像:
<img src="{{ route('storage.show', ['filename' => $user->avatar]) }}">
注意事项:
以上是如何在视图中显示 Laravel 存储中的用户头像?的详细内容。更多信息请关注PHP中文网其他相关文章!