mPDF 无法使用单线程服务器正确加载外部资源。
如文档和自述文件中所述,
mPDF 在使用单线程服务器(例如 php -S)获取外部 HTTP 资源时存在一些问题。建议使用合适的服务器,例如 nginx (php-fpm) 或 Apache。
我已经通过更改下面的行解决了这个问题
<img style="height: auto; width: 150px;" src="/storage/images/{{ $company_details->company_logo }}" />
到
<img style="height: auto; width: 150px;" src="storage/images/{{ $company_details->company_logo }}" />
斜线(/)是问题所在。我认为它正在将其视为 HTTP 资源。
如果你想使用 php artisan 只需打开另一个具有其他端口的服务器,例如:
php artisan serve
这是您的主服务器:http://localhost:8000
打开另一个命令 shell、终端等...并创建另一个服务器,帮助您将图像提供给 mpdf:
php artisan serve --port 8081
这将创建另一个服务器,http://localhost:8081,您可以通过更改
--port
arg来使用另一个端口。
所以在你的 mpdf 中你可以使用类似的东西:
$document->WriteHTML('<img src="http://localhost:8081/storage/logo.jpg" />');
我有同样的问题,但我修复了从绝对浴到相对路径的所有图像
例如就我而言,我改变了
src="{{assets('assets/logo.jpg')}}"
到
src="assets/logo.jpg"
资产函数会生成类似 http://youripordomain 的内容