Laravel中img src无法加载图片:路径或调用方式问题排查
先别着急换路径,咱们一步步排查问题:
第一步:确认Laravel存储软链接是否创建
Laravel默认的公开存储逻辑是通过软链接将storage/app/public目录映射到public/storage。如果你直接把图片放到了public/storage/images/aa.png,这其实绕开了框架的存储规范——正确的存放位置应该是storage/app/public/images/aa.png,然后执行以下命令生成软链接:php artisan storage:link执行后,
public/storage会自动指向storage/app/public,服务器才能正确访问到图片文件。第二步:修正asset调用的路径
当软链接创建完成后,正确的图片调用代码应该是:<img src="{{ asset('storage/images/aa.png') }}" alt="aa.png">你之前写的
asset("images/aa.png")会指向public/images/aa.png,但你的图片实际对应public/storage/images/aa.png,所以路径少了storage前缀,这是核心问题之一。第三步:检查文件与目录权限
确保Web服务器(比如Nginx、Apache)能读取到图片文件。可以用以下命令设置正确的权限:chmod -R 755 storage/app/public chmod 644 storage/app/public/images/aa.png第四步:直接验证URL可用性
在浏览器地址栏输入图片的完整URL(比如http://你的域名/storage/images/aa.png),如果能正常打开,说明路径和权限都没问题;如果打不开,再检查文件是否真的存在于对应目录,或者服务器的域名配置是否有误。
如果以上步骤都试过还是不行,可以告诉我你的Laravel版本和服务器环境(本地开发/线上服务器),我再帮你进一步排查。
内容的提问来源于stack exchange,提问作者ghost2092000

