【问题标题】:Laravel display images from storage/app/publicLaravel 显示来自 storage/app/public 的图像
【发布时间】:2018-08-10 09:34:02
【问题描述】:

我正在尝试显示 storage/app/public 文件夹中的图像。每当我的控制器使用

从该文件夹中检索图像时
$images = Storage::files('public');

从此处检索的文件以public/ 为前缀,而不是storage/。 这导致的问题是可以找到图像localhost/storage/filename.jpg,但无法找到localhost/public/filename.jpglocalhost/storage/public/filename.jpg。 我可以通过手动切断公共前缀并将其替换为存储来解决此问题,但这并不是一种特别优雅的处理方式。

我已经运行了命令 php artisan storage:link 并重新运行它会产生 The "public/storage" directory already exists. 消息。

【问题讨论】:

  • 您的网址中不应包含/public/public 应该是您项目的服务器 DocumentRoot。

标签: php laravel-blade laravel-5.6


【解决方案1】:

Laravel 在存储配置中带有一个内置的public 磁盘。

要列出storage/app/public 文件夹中不带前缀的所有文件,请使用:

\Storage::disk('public')->files();

要获取 storage/app/public 文件夹中文件的正确 URL,请使用:

\Storage::disk('public')->url($file);

要返回storage/app/public 文件夹中文件的URL 数组,下面是一个示例组合:

array_map(function ($f) {
    return \Storage::disk('public')->url($f);
}, \Storage::disk('public')->files());

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2020-08-15
    • 2016-10-28
    • 2021-07-28
    相关资源
    最近更新 更多