DOMPDF不';无法使用外部css文件
我正在使用Zend框架和DOMPDF库。当我用内联css测试它时,一切都很完美。但是当我尝试将css代码移动到外部文件时,规则不会应用到html页面 这是我的密码DOMPDF不';无法使用外部css文件,css,zend-framework,dompdf,Css,Zend Framework,Dompdf,我正在使用Zend框架和DOMPDF库。当我用内联css测试它时,一切都很完美。但是当我尝试将css代码移动到外部文件时,规则不会应用到html页面 这是我的密码 控制器动作代码,生成pdf 需要一次(“DomPdf/DomPdf_config.inc.php”) 2.对应视图的代码(index/dom.phtml) 如何让它工作 更新: 为了让它发挥作用,我改变了以下几点: 1.在控制器的操作中,为外部文件添加基本路径 $dompdf->set_base_path(APPLICATION
$dompdf->set_base_path(APPLICATION_PATH."/../public/themes/css/");
2.在视图中更改链接标签的href属性。使其相对于步骤1中设置的基本路径
<link type="text/css" href="pdf.css" rel="stylesheet" />
这实际上与Zend Framework无关,但您需要提供正确的路径来加载“外部”文件
$dompdf = new DOMPDF();
$dompdf->setBasePath(realpath(APPLICATION_PATH . '/path/to/css/'));
$dompdf->loadHtml($html);
$dompdf->render();
有关此功能,请参见DomPDF的说明。@Jurian Sluiman的回答是正确的,但不幸的是,他的回答对我没有帮助 为了找到适合我的解决方案,我花了一些时间,使用了
DOMPDF::set_protocol()
:
WWW_ROOT
这里有一个指向我的应用程序的webroot文件夹的链接。请注意,它有一个尾部斜杠
最好的一点是,这似乎是对set\u protocol()
的不当使用。但我同意,只要它能让CSS工作
希望这能为其他人节省几个小时的时间。如果有人在搜索引擎上找到这一点(就像我一样),请注意还有另一个选项名为
dompd::set_protocol()
,请参阅下面的我的答案以了解更多信息。谢谢@aexl,这为我节省了很多时间谢谢,但对我有效的是$options->setisremotenabled(true); $options->setChroot(array\u merge($options->getChroot(),[WWW\u ROOT])代码>。实际上,在设置了Chroot
之后,我甚至不需要$dompd->setBasePath(WWW\u ROOT)代码>阅读文档后,这与预期一致。我想没有CHROOT的安全保护是不行的。检查一下。
$dompdf->set_base_path(APPLICATION_PATH."/../public/themes/css/");
<link type="text/css" href="pdf.css" rel="stylesheet" />
$dompdf = new DOMPDF();
$dompdf->setBasePath(realpath(APPLICATION_PATH . '/path/to/css/'));
$dompdf->loadHtml($html);
$dompdf->render();
$dompdf->set_protocol(WWW_ROOT);
$dompdf->set_base_path('/');