无法访问存储在 Laravel 5.5 的 Storage 文件夹中的图像

Not able to access image stored in Storage folder in Laravel 5.5

我正在尝试访问存储在 /storage 文件夹中的 url 中的图像。

图片存储路径:

Project/storage/app/public/default.png

根据 Laravel 5.5 文档,您可公开访问的文件应放在目录中

storage/app/public

所以我做了同样的事情,但是当我尝试访问图像时:

http://localhost:8000/storage/default.png

那就不行了

我尝试了以下命令:

php artisan storage:link

但它抛出一个错误:

The "public/storage" directory already exists.

您试过后无法直接访问存储文件夹中的文件。首先,您必须创建一个符号 link 存储 "public" 文件夹到真正的 "public" 文件夹。

php artisan storage:link

命令后重试。

注意:如果您使用windows打开命令行(cmd,gitbash...) 作为管理员以避免错误。

第一次使用php artisan storage:link

然后您可以使用 /* 访问所有 public 路径,例如:

http://localhost:8000/default.png

以上命令允许您直接从 public 路径获取图像!

希望对您有所帮助!

尝试删除 app/public/storage 中的存储文件夹,然后再执行 运行 命令 (php artisan storage:link),这样您就可以使用此路径访问文件了

http://localhost:8000/storage/<folder_name_if_folder_exists>/<file_name>.<extension>

至于 2019 年,如果您遇到此错误:

"The "public/storage”目录已经存在。”

然后转到 public 文件夹并删除 "storage" 文件。

完成后,运行 再次 "php artisan storage:link" 现在就可以使用了

2019 年 9 月

什么对我有用:

  • 通过 SSH 连接到您的 homestead VM
  • cd 到您的项目文件夹
  • php artisan storage:link(作为您终端的管理员)
  • 运行 成功 我在 /public 目录中没有看到 /storage 文件夹
  • 使用 url 中的存储/通过 blade 访问图像,例如。 "storage/{{ $post->image }}"

如果您运行遇到任何错误:

  • rm -rf public/storage
  • php artisan storage:link(作为您终端的管理员)

最好的方法是先通过 运行 代码删除符号链接,该代码会首先从 public 文件夹中删除存储,如下所示:

$ rm public/storage

然后再次运行符号链接代码

$ php artisan storage:link

之后您会看到 public/storage 文件夹会重新出现并更新

尝试删除 Public 目录中的存储文件夹,然后 运行 此命令 "php artisan storage:link" 然后尝试一下。