You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Blade文件中图片无法显示问题求助

问题解决步骤

你的问题出在存储路径与符号链接不匹配:php artisan storage:link默认是把storage/app/public/目录链接到public/storage/,但你的图片存在storage/app/safety/,不在public子目录下,所以通过asset("storage/...")访问不到。

给你三个可行方案:

方案一:调整图片存储目录(最推荐)

  1. 把storage/app/safety/目录移到storage/app/public/下,变成storage/app/public/safety/
  2. 修改Blade中的图片路径代码:
->addColumn('image', function ($gasSafety) {
    return '<img src="'.asset("storage/safety/{$gasSafety->image}").'" alt="profile Pic" height="200" width="200">';
})

这样storage/app/public/safety/会被映射到public/storage/safety/,通过asset就能正常访问。

方案二:创建额外的符号链接

如果不想移动图片,手动给safety目录建符号链接:

  • Linux/Mac:在项目根目录执行命令
    ln -s ../storage/app/safety public/safety
    
  • Windows:以管理员身份打开命令提示符,进入项目根目录执行
    mklink /D public\safety ..\storage\app\safety
    

然后修改Blade代码中的路径:

->addColumn('image', function ($gasSafety) {
    return '<img src="'.asset("safety/{$gasSafety->image}").'" alt="profile Pic" height="200" width="200">';
})

方案三:配置自定义文件磁盘

  1. 打开config/filesystems.php,在disks数组中添加:
'safety' => [
    'driver' => 'local',
    'root' => storage_path('app/safety'),
    'url' => env('APP_URL').'/safety',
    'visibility' => 'public',
],
  1. 然后用Laravel的Storage门面生成URL,修改Blade代码:
->addColumn('image', function ($gasSafety) {
    return '<img src="'.Storage::disk('safety')->url($gasSafety->image).'" alt="profile Pic" height="200" width="200">';
})
  1. 最后还是需要给这个磁盘创建符号链接(同方案二的命令)。

另外,如果你不确定原有符号链接是否正常,可以先删除再重建:

  • Linux/Mac:rm public/storage,然后执行php artisan storage:link
  • Windows:直接删除public/storage文件夹,再执行php artisan storage:link

内容的提问来源于stack exchange,提问作者abu abu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:06:12