如何使用文件存储符号link显示用户头像?

How to display a user avatar using the file storage symbolic link?

我正在尝试显示用户上传的用户头像。该图像正在保存在服务器上但是每当我尝试显示它时都会出现 404 未找到错误。

我正在使用这个保存图像:

$path = $request->file('image')->store('avatars');

我已经使用 php artisan storage:link 命令创建了一个符号 link 作为 documentation suggests

我的HTML:

@if(config('adminlte.usermenu_image'))
        <img src="{{ Auth::user()->adminlte_image() }}"
             class="user-image img-circle elevation-2"
             alt="{{ Auth::user()->name }}">
    @endif

我正在使用 Laravel-adminLTE package 并使用下面的函数将图像 URL 发送到视图

public function adminlte_image()
{
    return Storage::url($this->avatar);
}

我的文件夹:

错误:

 http://localhost:8000/storage/avatars/S8Npk86Zun9FAYBREgxgOh9Ye6xiHVhyAmm3Vhb1.jpeg 404 (Not Found)

filesystems.php:

'disks' => [

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],

    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

我已经在 SO 中查看了几个关于符号 link 的问题,但我找不到答案。我显然在这里遗漏了一些东西,我们将不胜感激。

问题是我将图像存储在错误的磁盘中。我的 filesystems.php 指向 /public 目录。我将图像存储在 /avatars.

将路径更改为:

'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public/avatars'),

存储方式为:

$path = $request->file('imagem')->store('public/avatars');

解决了问题