Laravel视图中如何用asset在<img>标签加载图片?加载失败求助
解决Laravel Blade中用户头像无法加载的问题
1. 修正图片路径
你的asset()路径存在错误。Laravel执行存储链接命令后,storage/app/public目录会被映射到前端可访问的public/storage路径下,因此不需要在asset()中包含app/public部分。
修改图片渲染代码为:
@if ($profile->images) <img src="{{ asset('storage/'.$profile->images) }}" alt="Profile Image" style="max-width: 50px; border-radius: 50%;"> @else No Image @endif
2. 确认存储软链接已创建
如果尚未创建存储目录的软链接,在项目根目录执行以下Artisan命令:
php artisan storage:link
该命令会将storage/app/public目录与public/storage目录建立关联,确保前端能访问到存储的图片文件。
3. 验证图片实际存储位置
检查图片文件是否确实存在于storage/app/public/目录下。例如,如果$profile->images的值为user-avatar.jpg,则对应的文件路径应为storage/app/public/user-avatar.jpg,这样通过修正后的asset('storage/user-avatar.jpg')就能正常访问。
4. 检查目录权限
确保storage和public/storage目录具备可读权限,在Linux/macOS环境下可执行以下命令:
chmod -R 755 storage public/storage
内容的提问来源于stack exchange,提问作者chemuel castillo
相关产品推荐
相关产品推荐

