生成PDF返回404

时间:2018-03-07 14:50:52

标签: laravel nginx file-get-contents

我有一个在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');

1 个答案:

答案 0 :(得分:0)

好吧我没有成功解析我的404,但是因为我可以内联css,我还可以通过数据URI内联我的图像。这样我的html文档就不需要请求了。