提问者:小点点

LARAVEL 7-配置后未显示图像:清除


我正在开发Laravel7(在Windows10上使用Laragon4.0),我有一些文件可以从远程URL下载和保存。一切正常,但我必须执行“php artisan config:clear”来更新mysql配置,之后保存在存储/公用文件夹中的图像将不再提供服务。

文件在那里,但只是没有提供,然后我删除了/storage/public folder中的所有内容,删除了/public folder中指向/storage的符号链接(自然执行“php artisan storage:link”),并像以前一样用文件夹和文件再次填充/storage/public。文件夹结构在那里,文件也在那里,但当我试图访问它们时,我得到404错误。

我尝试了“php artisan Optimization:clear”和我在stackoverflow上找到的所有建议,但似乎没有任何帮助,我不知道该去哪里寻找,请帮助我。

以下是我用来下载/保存图像的代码:

        $url = $team["logo"];
        $contents = file_get_contents($url);
        $name = substr($url, strrpos($url, '/') + 1);
        $file = 'public/team/logo/'. $name;

        Storage::put('team/logo/'. $name, $contents);

这是我在视图上显示图像的方式:

<img src="{{Storage::url($team->logo)}}" style="max-width:50px">

这是我在filesystems.php上的公共磁盘配置

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

共1个答案

匿名用户

当您的驱动程序设置为

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

您的Storage::disk('local')绝对值设置为/Storage/app/public。因此,$file='public/team/logo/'$姓名变成$file='team/logo/'$姓名

如果您使用的是“代码>干预/图像< /代码>库,您可以考虑更改。

$contents = file_get_contents($url);

$contents = File::make($url);

看见http://image.intervention.io/api/make