Laravel 5.4无法访问公共符号链接子文件夹中的img资源

时间:2017-09-06 10:49:57

标签: laravel laravel-5.3 storage laravel-storage

我使用以下命令为本地存储磁盘中的每个用户创建了一个子文件夹:

if(! Storage::disk('public')->has("users/".$username."_".Auth::user()->id)){
    Storage::makeDirectory("public/users/".$username."_".Auth::user()->id);

它有效!

所以现在当我保存文件时,所有文件都进入用户的文件夹,即:

storage/app/public/users/userX
storage/app/public/users/userY
etc.

然后我用命令构建一个sim链接:php aritsan storage:link 它有效。

但是,当我试图提供文件时,我总是无所事事! 如果我使用的代码如下:

Storage::url("$urlToFile");

其中$urlToFile包含"public/users/userX/file.png"

之类的内容 它让我回来了:

/storage/users/userX/file.png

即使我把assett()之类的功能放在前面,我也无法使用它。

我该如何解决?

提前致谢!

3 个答案:

答案 0 :(得分:0)

您必须在config/filesystem.php

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

答案 1 :(得分:0)

您可以Storage::disk('public')->get($url);

执行此操作

答案 2 :(得分:0)

According to the docs,您应该像以下一样访问您的图片:asset('storage/users/userX/file.png');,而不是public/users/userX/file.png