求助!laravel-admin无法读取图片

1. 运行环境

本地phpstudy

1). 当前使用的 Laravel 版本?

9.x

2). 当前使用的 php/php-fpm 版本?

PHP 版本:8.0

2. 问题描述?

使用laravel—admin可以上传图片,但是无法查看图片,以下是配置
filesystems.php配置文件的内容如下
laravel-admin无法读取图片
同时使用php artisan storage:link 配置了link
laravel-admin无法读取图片

admin.php配置内容如下
laravel-admin无法读取图片
网页url信息如下
laravel-admin无法读取图片
文件成功存储到了以下路径
laravel-admin无法读取图片

文件在数据库中的存储路径为
laravel-admin无法读取图片

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 18

解决了吗? 没解决的话,用

$url = Storage::url('file.jpg');

看看具体的URL和你访问是否一致

2个月前 评论
wxlPHP (楼主) 2个月前

storage:link

2个月前 评论
wxlPHP (楼主) 2个月前

图片名字转码了,你把名字改成英文试下

2个月前 评论
wxlPHP (楼主) 2个月前

问题说明

因为项目指定 public 目录为 web 站点入口,所以你的图片实际访问的物理地址是:

/项目根目录/public/storage/app/public/images/xxx.png

由于 laravel 的文件系统将文件存储在 /项目根目录/storage/app/public 目录下,所以你需要创建符号链接

解决办法

你可以使用 Artisan 命令 storage:link 来创建符号链接:

php artisan storage:link

文档位置:继续深入 > 文件存储 > 配置 > 公共磁盘

文档链接:文件存储《Laravel 9 中文文档》

2个月前 评论

filesystems.php => admin 配置里的 url 应是 /storage 而不是 /storage/app/public。
软链是 storage -> /storage/app/public
网站的根目录在 public,访问 /storage 根据软链指向即访问的真实路径为 /storage/app/public,而后者配置导致的路径为 /storage/app/public/app/public 当然找不到了

'admin' => [
    'url' => env('APP_URL').'/storage'
]
2个月前 评论
wxlPHP (楼主) 2个月前

评论区的方法都用了,不行

2个月前 评论

我重新按照流程来了一次,这次是按照论坛的教程步骤来的,依然不行,以下是配置和相关图片

admin.php文件

file filesystems.php文件

file 使用了命令php artisan storage:link,filesystems.php文件中的link配置

file 在laraveladmin后台页面访问时的图片路径

file 数据库内容

file 文件夹内容

file

2个月前 评论
ljheisenberg 2个月前
php_yt 2个月前
wxlPHP (作者) (楼主) 2个月前

如果有需要我可以直接提供代码压缩包

2个月前 评论

排查问题,一般首要是确认入口开始,结合日志分析,定位错误,然后根据错误去分析业务代码。

无法读取图片,404吗?先去看下nginx/php日志,看下真实的访问路径,然后再去排查代码。

2个月前 评论

感谢大家的帮忙,原来问题就是.env里面APP_URL没有改,以前从来不注意这些细节问题,这次受教训了

2个月前 评论
php_yt 2个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!