Laravel 5.4 Storage链接异常:HTML中图片无法显示问题
解决Laravel图片无法加载的问题
看起来你遇到了Laravel里存储图片无法正常显示的典型问题——核心原因是存储目录的符号链接未创建,再加上可能的存储路径配置偏差。别慌,一步步来搞定:
1. 先创建存储目录的软链接
Laravel默认要求把storage/app/public目录软链到public/storage,这样前端通过asset('storage/...')才能访问到storage里的文件。你现在public/storage是空的,基本就是没做这一步。
打开终端,在项目根目录执行这条Artisan命令:
php artisan storage:link
执行完成后,你会发现public/storage文件夹出现了,它会自动指向storage/app/public目录。
2. 调整图片的存储位置
你提到图片存在storage/image目录,但Laravel默认对外公开的存储目录是storage/app/public。所以你需要:
- 把现有图片移到
storage/app/public/image目录下; - 或者修改你的上传逻辑,确保后续上传的图片直接存在
storage/app/public/image里(比如用Storage::disk('public')->put('image/'.$fileName, $fileContent))。
3. 修正模板里的图片路径
根据你数据库里$cv->photo存储的内容调整路径:
- 如果
$cv->photo存的是完整相对路径(比如image/headshot.jpg),模板里保持:
<img src="{{ asset('storage/'.$cv->photo) }}" alt="...">
- 如果
$cv->photo只存了文件名(比如headshot.jpg),就要改成:
<img src="{{ asset('storage/image/'.$cv->photo) }}" alt="...">
4. 验证文件权限(可选)
如果做完上面几步还是不行,检查一下目录权限,确保服务器能读取文件:
chmod -R 755 storage/ public/ chown -R www-data:www-data storage/ public/ # 针对Apache/Nginx环境
做完这些步骤后,刷新页面应该就能正常加载图片了。
内容的提问来源于stack exchange,提问作者mouhamed slaimi
相关产品推荐
相关产品推荐

