我在加载CSS和图像资源时收到Authentication Required错误。
错误示例:
Warning: Failed to load http://reporter.dev:8888/css/fc84af4_part_1_bootstrap-editable_2.css (ignore)
我正在使用KNP Snappy包,如下所示:
$html = $this->renderView(
'InterlatedReporter:Allocation:casual_calendar_pdf.html.twig',
array(
'casualCalendar' => $casualCalendar,
)
);
$filename = "export-casual-calendar-" . date("Ymd") . '.pdf';
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="' . $filename . '"'
)
);
树枝模板已添加绝对路径,如下所示。网址似乎使用file://
{{ app.request.getSchemeAndHttpHost() ~ asset('css/sortable-theme-bootstrap.css') }}
我尝试过使用安全性,开发防火墙已经到位:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
这是第一条规则。
我们按照SensioFrameworkExtraBundle使用控制器注释。
我也尝试按照Symfony 2 kpn snappy generate pdf with output meets security area
传递会话如何加载资源?
答案 0 :(得分:6)
我找到了解决办法。 file://是关键。
传递模板的基目录:
$html = $this->renderView(
'InterlatedReporter.html.twig',
array(
'casualCalendar' => $casualCalendar,
'base_dir' => $this->get('kernel')->getRootDir() . '/../web' . $request->getBasePath()
)
);
并提供资产的完整路径:
<link rel="stylesheet" href="{{ base_dir ~ asset('css/sortable-theme-bootstrap.css') }}">
答案 1 :(得分:0)
我有同样的问题,Interlated说,在asset('path/to/your/asset/or/image')
解决问题之前添加一个基目录。
如果您无法访问$this->get('kernel')
或$request
(例如在听众中),您可以手动执行此操作&#34; __DIR__
魔法常数!
我的听众在./my-project/src/MyBundle/Listener/MyListener.php
和我的$basedir = __DIR__.'/../../../web'
所以在你的树枝视图中<img src="{{ basedir ~ asset('path/to/your/img')}}" alt="">