将文件(图像)public/images存储在文件夹中并将其存储在有storage/app/public什么区别?
H H*_*H H 17
公用文件夹意味着文件可以公开访问.例如public/images/my-image.jpeg,任何人都可以通过访问来查看存储的图像
mysite.com/images/my-image.jpeg
但是,存储在storage目录中的文件仅适用于您的应用程序.
Laravel有一个php artisan storage:link命令,可以public从中添加一个符号链接storage/app/public
原因是您storage可能不是您的本地文件系统,而是Amazon S3存储桶或Rackspace CDN(或其他任何东西)
您需要按照文档https://laravel.com/docs/5.6/filesystem设置文件系统配置
完成此操作后,您可以将文件存储到存储位置/从存储位置存储文件,而不是将所有内容都存储在服务器上.
有2种辅助方法public和storage显示文件:
存储: storage_path('my-file.jpg')
上市: asset('my-file.jpg')
该public/images是webroot的目录。这意味着可以通过网络浏览器进行访问mozilla, chrome, etc...
在storage/app/public针对文件夹cache,logs。
我的文件放在哪里?
经验法则:如果您需要控制哪些人可以查看这些文件,请将它们放入storage/app/public否则将它们放入public/images
编辑
正如其他答案指出的那样,public任何用户都可以看到webroot目录。即使是未登录的用户