Laravel 5.8 Symlink 没有 link

Laravel 5.8 Symlink doesnt link

我有一个页面一切正常。我将此页面移动到另一台服务器(不是本地主机),但我的符号链接不起作用。当我上传文件时,它们仅存储在 storage/app... 而不是 public/storage

当我从本地和服务器删除文件夹:public/storage 和 运行:php artisan storage:link 时,它会写入 "public/storage" 目录存在。

在路线中我还有 Artisan::call('storage:link');

在环境中我设置了FILESYSTEM_DRIVER=public

filesystem.php:

'disks' => [

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'permissions' => [
            'file' => [
                'public' => 0664,
                'private' => 0600,
            ],
            'dir' => [
                'public' => 0775,
                'private' => 0700,
            ],
        ],
    ],

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

查看:

 <img src="{{ asset('storage/'.$image->full) }}" id="brandLogo" class="img-fluid" alt="img">

代码应该没问题,因为在另一个站点我有相同的代码并且可以正常工作。我有 Laravel 5.8

你能帮帮我吗?

您可以在 public 'array' 中编辑 root 路径 成为

'root' => 'storage'

但在这种情况下,您不能使用 asset 来打印路径,因此您将使用 url 而不是

所以会是这样

<img src="{{ url('storage/'. $image->full) }}">

关于安全性,如果您尝试像这样从 url 中删除存储空间

,它已完全 安全
localhost/storage

它会让你访问被拒绝