Laravel8如何从storage/app/public/student_img目录获取图片展示在blade视图
解决方法
第一步:创建公共存储软链接
首先执行Artisan命令创建软链接,这是Laravel访问storage/app/public目录下文件的必要前提:php artisan storage:link
执行完成后,项目根目录的public文件夹下会生成一个storage软链接,指向storage/app/public目录,web端可以直接通过/storage/xxx的路径访问对应文件。
第二步:修正Blade视图中的图片路径
你原写法中的路径是服务器端的物理路径,不属于web可访问的公共路径范围,需要改为以下两种正确写法之一:
- 使用
asset辅助函数生成完整可访问路径:
src="{{ asset('storage/student_img/'.$stud->photo) }}"
- 使用
Storage门面的url方法(更贴合filesystem配置,后续修改磁盘配置不需要改视图代码):
src="{{ \Storage::url('student_img/'.$stud->photo) }}"
可选检查项
如果执行完上述两步仍无法访问,可排查以下配置:
- 确认
storage/app/public/student_img目录权限为755,目录内的图片文件权限为644,避免权限不足导致访问拒绝 - 确认项目
.env文件中的APP_URL参数和你实际访问项目的地址一致,例如本地开发时通常为APP_URL=http://localhost:8000
内容的提问来源于stack exchange,提问作者Md Shamsher Alam
相关产品推荐
相关产品推荐

