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

Laravel 9中使用Dompdf无法加载图片的问题求助

Dompdf生成PDF图片加载失败问题排查与解决

问题情况

网页中图片显示正常,但通过Dompdf生成PDF时图片加载失败,错误状态如下:
Dompdf图片加载失败

我的代码片段

视图HTML代码

<img src="{{public_path('assets/img/logoprov.png')}}" height="100" width="100">
<img src="{{public_path('img/logoprov.png')}}" height="100" width="100">
<img src="{{asset('img/logoprov.png')}}" height="100" width="100">

Laravel控制器代码

$surat = Surat::find($id);
view()->share('surat',$surat);
$pdf = PDF::loadView('sekretariat.pdf.index',compact('surat'));
return $pdf->download('pdf_file.pdf');

可行解决方法

  • 确保传递绝对物理路径:Dompdf无法直接识别Laravel的asset()生成的URL,必须使用服务器本地的绝对物理路径。可以直接在视图中使用public_path(),但要确认路径是否准确:
    <img src="{{ public_path('img/logoprov.png') }}" height="100" width="100">
    
    或者在控制器中提前拼接好路径传递给视图:
    $logoPath = public_path('img/logoprov.png');
    $pdf = PDF::loadView('sekretariat.pdf.index', compact('surat', 'logoPath'));
    
    视图中引用:
    <img src="{{ $logoPath }}" height="100" width="100">
    
  • 开启远程资源访问(若使用网络图片):如果图片是外部URL,需要在生成PDF时启用远程访问选项:
    $pdf = PDF::loadView('sekretariat.pdf.index', compact('surat'))
              ->setOptions(['isRemoteEnabled' => true]);
    
  • 检查文件权限:确认图片文件及所在目录的读取权限(建议设置为755),保证Dompdf进程能读取到文件。
  • 验证路径正确性:可以通过dd(public_path('img/logoprov.png'))输出路径,检查是否和实际文件路径一致,避免路径层级错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:56:47