我有一个在Ubuntu服务器上运行在nginx 1.12.1上的Laravel 5.3应用程序(使用URL重写)。
我想创建PDF报告,我为Laravel找到了这个mPDF wrapper。我的页面在浏览器中工作但在mPDF尝试生成PDF时抛出404错误。 经过调查,我发现它在html中的这一行失败了:
<link href="/css/app.css" rel="stylesheet">
我挖掘了mPDF源代码,发现它会在以下行中失败:
$content = @file_get_content("https://mywebaddr/css/app.css");
首先,不是返回false everythings停止而nginx显示错误404(尽管url有效,我可以在我的浏览器中打开我的CSS,尽管忽略错误操作符)但这不是主要的问题
第二件事为什么这个请求失败了?我检查并且allow_url_fopen为ON,如果是凭据问题,请求可能会因401 Unauthorize而失败。
我不明白这种行为,有人可能会引导我解决这个问题吗?
编辑: 我的路线:(第一个将报告显示为网页,第二个显示PDF)。
| | GET|HEAD | report/{id} | | App\Http\Controllers\ReportController@viewReport | web |
| | GET|HEAD | report/{id}/download | | App\Http\Controllers\ReportController@downloadReport | web |
请注意,当我删除css包含后,我成功获取了PDF,但我的图像已损坏。另请注意,这不是生成404但是尝试使用file_get_content的mPDF PHP类的CSS。
PDF代码是:
$pdf = PDF::loadView('report.index', $datas);
return $pdf->stream('document.pdf');
答案 0 :(得分:0)
好吧我没有成功解析我的404,但是因为我可以内联css,我还可以通过数据URI内联我的图像。这样我的html文档就不需要请求了。