Laravel项目中存储的图片无法在仪表盘显示问题求助
Laravel图片无法显示的解决办法
问题根源
你当前的代码存在两个核心问题:
- 路径错误:
asset()函数指向项目根目录下的public文件夹,你写的../storage/app/...无法被Web服务器正确识别——storage目录默认不对外暴露,直接访问会被拒绝。 - 缺少存储软链接:Laravel的
storage/app/public目录需要通过软链接映射到public/storage,Web才能正常访问存储的文件。
解决步骤
1. 创建存储软链接
在项目根目录的终端执行以下命令:
php artisan storage:link
这条命令会在public文件夹下生成storage软链接,直接指向storage/app/public目录。
2. 修正图片路径代码
把Blade文件里的图片路径代码改成下面这样:
<div class="col-sm-8"> <a href="blog_detail/{{ $main_blog->id }}"> <img src="{{ asset('storage/assets/upload/images/' . $main_blog->image) }}" class="blog_img"> <h1 class="blog_main_heading">{{ $main_blog->title }}</h1> </a> </div>
注意:确保你上传图片时,是把文件保存到storage/app/public/assets/upload/images目录下,这样软链接生效后,public/storage/assets/upload/images就能对应到这个存储路径。
额外检查项
- 确认数据库里存储的图片名称无拼写错误
- 检查
storage/app/public/assets/upload/images目录下确实存在对应图片文件 - 确保目录和文件权限设置正确(一般给755权限即可)
内容的提问来源于stack exchange,提问作者Rajan Patel
相关产品推荐
相关产品推荐

