在public/images
文件夹中存储文件(图像)并将其存储在storage/app/public
之间有什么区别?
答案 0 :(得分:14)
公用文件夹意味着文件可以公开访问。例如,任何人都可以通过转到
查看存储在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
设置文件系统配置完成此操作后,您可以从存储位置获取/存储文件,而不是将所有文件存储在服务器上。
public
和storage
有两种辅助方法可以显示文件:
存储:storage_path('my-file.jpg')
公开:asset('my-file.jpg')
答案 1 :(得分:6)
如果您想要控制谁可以访问哪些文件,请将文件存入存储区。
如果每个人都可以访问该文件(包括未登录的用户),请进入公开
答案 2 :(得分:2)
mozilla, chrome, etc...
是一个webroot目录。这意味着可以通过网络浏览器storage/app/public
cache
是logs
,storage/app/public
的文件夹。
我的文件放在哪里?
经验法则:如果您需要控制哪些人可以查看这些文件,请将其放入public/images
,否则请将其放入public
修改强>
正如其他答案指出<button id="button_reload" onclick=reload()><span class="glyphicon glyphicon-refresh"></span></button>
webroot目录,任何用户都可以看到它。即使是非登录用户
答案 3 :(得分:1)
提出了一个类似的问题here,并回答说:
public是一个“WEBROOT”目录。它由可以的文件组成 从浏览器访问。有你的
index.php
文件,需要一个 你的输入点的作用。另外还有css
,javascript
个文件。
storage
是缓存,日志等文件夹。