public_path() returns 也是在 laravel 5.3 中配置新磁盘时的存储文件夹

public_path() returns also the storage folder when configurating new disk in laravel 5.3

因此,在我的 public 文件夹中有一个名为 images 的子文件夹,其中包含一些基本图像。 我想做的是使用 laravel 的 Storage class 来处理我未来的图像(它们会很多并且需要很多功能,所以我想要以顺利的方式做到这一点)。 问题:我通过以下方式在我的 config/filesystems.php 中创建自定义磁盘:

'disks' => [

    //...
    'img_disk' => [
        'driver' => 'local',
        'root' => public_path(),
    ],

    //...

但是,当我尝试访问我的图片时(打算将其 url 作为我的 img html 项目的来源),使用以下方式:

<?php
    echo Storage::disk('img_disk')->url('window.png');
?>

它returns /storage/window.png... 我只需要一个简单的图像源管理器。现在我在本地工作,但当我将它更新到我的实际在线服务器时它也必须工作。 例如,如果我简单地输入 <img src="images/window.png">,我文件夹中的图片就可以正常显示。我想让它尽可能简单,以备将来使用,并将我的图片存储在同一个 images 文件夹的子目录中,这样我就可以使用 Storage class。 还是我完全错了?我错过了什么或混淆了什么吗?任何建议将不胜感激!

您缺少设置图像目录:

您可以在文件系统配置文件中设置它,或者在尝试调用存储对象时设置它

所以,你的文件系统文件需要修改如下:

'root' => public_path('images'),

或者只是在你试图称呼你的时候 image :

echo Storage::disk('img_disk')->get('images/window.png');
//                              ^^^

注意,根元素用于获取图像,

要使用 url 功能,您需要向您的文件系统配置文件提供 url 元素,如下所示:

'disks' => [

    //...
    'img_disk' => [
        'driver' => 'local',
        'root' => public_path('images'),
        'url' => public_path('images'), // HERE
    ],

    //...

现在您可以轻松使用 url 方法了:

echo Storage::disk('img_disk')->url('window.png');