今天一直在做上传图片,期间这个疑问,不得其解。
花了近一个下午的时间终于所有问题都得到了解决。
为了给后来使用的人予以方便,也是给小猿子自己做个可追溯的问题记录,把问题以及解决方法一一举例说明:
1.文件上传后,本地默认储存位置为:storage/app/自定义的目录
laravel框架中默认只有public可以公共访问,因为项目根目录下的 public
是一个特殊的目录,这个目录下存放可公共访问的资源。
什么是可公共访问呢?就是可以通过`http://域名/文件路径`的形式访问到。
而我们默认的存储位置是不允许公共访问的。而
http://域名/storage/app/自定义的目录/文件名
这样是访问不了的直接404
看了很多文档,其中提到需要建立软连接
软连接建立命令,如下:
php artisan storage:link
2.软连接指定的目录与上传的目录不匹配
软连接咱建立了,但是依然访问不了,为啥呢?
因为咱们软连接指向的目录是
storage/app/public
而我们世界的目录却是
storage/app/自定义的目录