Laravel admin 用户头像显示不出的原因及解决方法

已经使用命令 php artisan storage:link 创建过软链接了,头像仍然不显示。
发现链接显示的是 http://localhost/storage/images/rar.jpg 导致了404错误。
如果头像链接是 http://yw.pay/storage/images/rar.jpg 那就对了!
file
方法一:
将.env 文件里的 APP_URL=http://localhost
修改为 APP_URL=http://yw.pay 刷新浏览器,发现头像成功显示。
但这是个治标不治本的坏办法,放弃。

方法二:
将 config/admin.php 里的 'disk' => 'public'
修改为 'disk' => 'admin'
在 config/filesystems.php 里面添加一个 admin 磁盘,刷新浏览器头像也能显示!
'disks' => [
'admin'=>[
'driver'=>'local',
'root'=>storage_path('app/public'),
]
……
],
file
此法的妙处在于头像链接使用的是相对路径 /storage/images/rar.jpg
之前什么 http://localhost/storage/images/rar.jpg
或者什么 http://yw.pay/storage/images/rar.jpg
都是绝对路径,链接写死了。
对于虚拟主机来说,写死的链接未必会显示(要看虚拟主机的主机名)
但是相对路径 /storage/images/rar.jpg 一定会显示!只要文件存在。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

@zhaiduting
那是因为你在安装 Laravel-admin 时没有修改 config/admin.php 的 upload:

'upload' => [

        // Disk in `config/filesystem.php`.
        'disk' => 'public',

        // Image and file upload path under the disk above.
        'directory' => [
            'image' => 'images',
            'file'  => 'files',
        ],
    ],

这样设置以后,就可以直接用 php artisan storage:link 创建软链接了!

5年前 评论

我这情况特殊啊,在已经满足以下条件的情况下依然不显示头像:
条件一:已经使用命令 php artisan storage:link 创建过软链接;
条件二:config/admin.php upload 已经修改为 'disk' => 'public'

如果碰到了这样的情况,就像我这样解决,方法有效。
我创建的admin磁盘其实就是public磁盘。
只不过这个磁盘会让头像显示的时候不带主机名(如0楼截图2鼠标所指)

我的初衷是想专门创建一个 upload 磁盘供后台使用,位置为 /storage/upload
然后为 /storage/upload 创建软链接 /public/upload
尽管可以使用网址 http://主机名/upload/images/rar.jpg 显示图片,
但是 laravel-admin 似乎只会用storage去访问头像( http://主机名/storage/images/rar.jpg
也就是说 laravel-admin 不会使用我创建的磁盘 upload 去访问头像,这点令人不爽!

5年前 评论
Two-Two 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
63
粉丝
17
喜欢
140
收藏
118
排名:132
访问:7.4 万
私信
所有博文
社区赞助商