Laravel事件管理系统中index.blade.php图片正常但show.blade.php不显示
解决Laravel视图中图片路径不一致的问题
嘿,我太懂你这种头疼的情况了!刚学Laravel的时候,这种路径坑真的很容易踩。咱们来一步步捋清楚:
问题根源
你在index.blade.php里图片能正常显示,但show.blade.php里不行,核心原因是相对路径的解析问题:
- 假设你的
index页面路由是/events,用相对路径images/{{$event->image}}时,浏览器会解析成http://your-domain/images/xxx.jpg,刚好对应public/images目录里的文件,所以没问题。 - 但
show页面的路由是/events/{id}(比如/events/1),这时候相对路径会被浏览器解析成http://your-domain/events/images/xxx.jpg——这个路径根本不存在,自然显示不出图片。
两个简单的解决办法(完全符合你现阶段的需求)
1. 给路径加根目录斜杠
直接把图片标签改成绝对路径的写法,强制从网站根目录开始找文件:
<img style="width:100%" src="/images/{{$event->image}}">
2. 使用Laravel的asset()助手函数
这是更规范的Laravel写法,它会自动帮你生成正确的绝对URL,以后部署到不同环境也不容易出错:
<img style="width:100%" src="{{ asset('images/' . $event->image) }}">
两种方法都不用涉及你暂时不想碰的Storage系统,简单直接就能解决问题~
内容的提问来源于stack exchange,提问作者Mitch Feaver
相关产品推荐
相关产品推荐

