一个简单的场景:
1)Symlink公共/存储到存储/应用/公共使用
php artisan storage:link
Run Code Online (Sandbox Code Playgroud)
2)使用上传文件
$path = $request->file('avatar')->store('avatars');
Run Code Online (Sandbox Code Playgroud)
3)据我了解,我应该能够访问该网址下的文件-`www.example.com/storage/avatars/avatar.jpg
但是,我在第三步中获得的路径实际上是public / avatars / avatar.jpg,因此最终我将“ public /”部分替换为“以具有正确的路径。
似乎我缺少了一些东西,但是我找不到确切的东西。
谢谢您的帮助!
使用公用磁盘时,应将文件存储在公用磁盘中。
您可以在存储功能的第二个参数中指定磁盘。
$path = $request->file('avatar')->store(
'avatars', 'public'
);
Run Code Online (Sandbox Code Playgroud)
这样可以确保文件存储在公共目录中storage/app/public的storage符号链接指向的位置storage/app/public。
现在您可以简单地使用:
asset('storage/avatars/avatar.jpg');
Run Code Online (Sandbox Code Playgroud)
它将从中检索文件 storage/app/public/avatars/avatar.jpg
您可能需要检查storeAs重命名文件名或使用子目录来确保文件名是唯一的。