Laravel DOMPDF:如何从存储文件夹加载图像?

Laravel DOMPDF: how to load image from storage folder?

图像存储在 Laravel 5.2 isn't being rendered into DOMPDF/storage/app/ 文件夹中。我收到一条错误消息:image not found or type unknown.

图像的路径是 storage/app/v6_dashboard.png 我尝试了这些:

<img src="/media/v6_dashboard.png" />
<img src="media/v6_dashboard.png" />
<img src="http://localhost:8000/media/v6_dashboard.png" />

使用这条路线的:

Route::get('/media/{img}', function ($img) {
  $image = Image::make(Storage::disk('local')->get($img));
  return Response::make($image->encode('jpg'), 200, ['Content-Type' => 'image/jpeg']);
});

请注意,我设置了以下配置:"DOMPDF_ENABLE_REMOTE" => true

它在典型的 HTML 视图中有效,但在 DOMPDF 中无效。是根本不兼容还是我做错了什么?

最后绕过路由,用一个str_replace/media/切换成绝对路径,像这样:

str_replace('/media/', '../storage/app/', $link);

在 HTML 中从 publicstorage 有点违反直觉,但这似乎是 DOMPDF 渲染图像的唯一方法。还发现 DOMPDF 不会通过 HTTPS 呈现远程图像。

您需要引用图像的 public 路径。因此,如果 'image.jpg' 在您的 public/images 文件夹中并存储在名为 $image 的变量中,您可以执行以下操作:

<img src="{{ public_path() . $image }}">

dompdf 需要服务器上的绝对路径,而不是客户端会看到的!