Laravel 9图片上传后无法显示问题求助
问题原因及解决方法
核心问题1:图片URL路径错误
你前端生成的URL路径有误。Laravel中,public磁盘的存储目录是storage/app/public,通过符号链接映射后,前端访问的路径应该以/storage/开头,而非/storage/app/public/。
控制器中$path = $request->file('img')->store('boutique-storage', 'public');生成的路径类似boutique-storage/xxx.jpg,数据库存储的就是这个值。但前端代码拼接成了storage/app/public/boutique-storage/xxx.jpg,这指向的是不存在的路径(符号链接已将public/storage映射到storage/app/public)。
修正前端代码:
将img标签的src改为:
<img src="{{ asset('storage/' . $boutique->img) }}" alt="Produit" class="img-produit" />
核心问题2:未创建public磁盘的符号链接
如果没创建符号链接,Laravel无法通过Web访问storage/app/public下的文件。需要在项目根目录执行以下Artisan命令:
php artisan storage:link
执行后,public目录下会生成storage符号链接,指向storage/app/public目录,Web才能正确访问存储的图片。
验证步骤
- 执行
storage:link后,检查项目public目录下是否出现storage符号链接文件夹。 - 查看前端生成的img标签src,确认路径为
/storage/boutique-storage/xxx.jpg这类格式。 - 直接在浏览器地址栏访问该URL,确认能正常加载图片。
内容的提问来源于stack exchange,提问作者Caroline Dorchies
相关产品推荐
相关产品推荐

