【发布时间】:2021-06-29 16:12:18
【问题描述】:
我有一个应用程序可以将 pdf 保存到 Laravel 存储文件夹中,然后必须将其公开。
我按照 laravel 的说明将 laravel 根目录中的 /storage 文件夹链接到公共文件夹:php artisan storage:link
我遇到了一个令人困惑的问题,我不知道如何通过 URL 访问该存储文件夹中的文件。
当涉及到这些文件的路径时,它们现在位于此处的存储中:
/storage/app/public/
同一个文件夹的链接路径是
/public/storage/
如果我将测试文件放在/public/ 中,我可以通过转到localhost:3000/file.pdf 来访问它
但是,如果我尝试将文件放入 /public/storage/,当我转到 localhost:3000/storage/file.pdf 时会得到 404,我不知道为什么!
文件已正确链接,因为我可以在 /public/storage 和 /storage/app/public 文件夹中找到它们,这些文件夹的内容匹配。
当我运行dd( public_path() ); 时,我得到:"/home/vagrant/code/project/public"
当我运行dd( storage_path() ); 时,我得到:"/home/vagrant/code/project/storage"
我的filesystems.php 文件中有以下内容:
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
这似乎意味着要保存到存储中的文件应该保存到/storage/app/public,这是真的,并且网址应该是localhost:3000/storage,这似乎不起作用!我错过了什么?
【问题讨论】:
-
从 /public/ 中删除快捷方式存储文件夹并运行 php artisan storage:link 再次尝试
-
@JohnLobo 没有帮助,仍然得到 404。还三次检查文件名是否正确,复制粘贴它
-
你确定storage/app/public/file.pdf的路径下有文件
-
是的,我在 /storage/app/public 也有一些文件夹,但我将测试文件直接放在 /storage/app/public 文件夹中进行测试