【问题标题】:Laravel 5.8 Symlink doesnt linkLaravel 5.8 Symlink 没有链接
【发布时间】:2020-04-13 09:45:22
【问题描述】:

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

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

在路线上我也有 Artisan::call('storage:link');

在环境中我设置了 FILESYSTEM_DRIVER=public

文件系统.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 数组中的root 更新为'root' =&gt; 'storage'
  • 编辑后重新上传图片
  • 链接不在公用文件夹中的存储文件夹是否安全?
  • 我尝试在服务器中创建命令storage:link,但没有任何反应
  • 'root' => 'storage':它在存储文件夹中创建了新文件夹:storage/storage 但没有帮助

标签: php laravel storage symlink


【解决方案1】:

您可以在公共“数组”中编辑root 路径 成为

'root' => 'storage'

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

应该是这样的

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

关于安全性,如果您尝试从这样的 url 获取存储空间,它是完整的安全

localhost/storage

它会让你拒绝访问

【讨论】:

    猜你喜欢
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 2019-11-10
    • 2019-09-20
    • 1970-01-01
    • 2020-02-16
    相关资源
    最近更新 更多