Laravel 存储 public url 在 storage:link 之后不起作用

Laravel storage public url after storage:link not working

我正在尝试通过浏览器上的 URL 访问我服务器上的 public 图像。

为此,我的存储文件夹中有以下层次结构:

storage
   |app
     |public
        |post
           |1
             |myimage.png

我再运行下面的命令创建一个link

php artisan storage:link

现在,当我尝试通过 http://localhost:8000/storage/post/1/myimage.png 在浏览器上访问我的图像时,我得到一个 404 NOT FOUND 页面。

我什至尝试了 http://localhost:8000/post/1/myimage.png,同样的事情。

这是我在 filesystems.php 文件中的设置:

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

'links' => [
    public_path('storage') => storage_path('app/public'),
],

我做错了吗?

我找到了解决 public 图片难题的方法。

我不再将图像存储在 /storage/public 中并创建符号 link,而是直接从根目录存储在 /public 文件夹中。

我必须像这样在 /config/filesystems.php 文件中添加配置:

'disks' => [
    ...,
    'root_public' => [
        'driver' => 'local',
        'root' => public_path('/'),
        'url' => env('APP_URL'),
        'visibility' => 'public',
    ],
    ...,
],

有了这个,我的 public 目录和图像可以通过 http://localhost:8000/mypublicpath/myimage.png

访问