繁体   English   中英

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

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

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

我正在使用以下方法保存图像:

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

文档所示,我已经使用php artisan storage:link命令创建了一个符号链接

我的 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并使用下面的 function 将图像 URL 发送到视图

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

我的文件夹:

在此处输入图像描述

错误:

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

文件系统.php:

'disks' => [

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

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

我已经在这里查看了关于符号链接的几个问题,但我找不到答案。 我显然在这里遗漏了一些东西,任何帮助将不胜感激。

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

将路径更改为:

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

以及存储方法为:

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

解决了问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM