【问题标题】:How to load CSS and images with KnpSnappyBundle PDF and Symfony2?如何使用 KnpSnappyBundle PDF 和 Symfony2 加载 CSS 和图像?
【发布时间】:2015-09-11 00:00:10
【问题描述】:

我在加载 CSS 和图像资源时收到需要身份验证的错误。

错误示例:

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 . '"'
  )
);

twig 模板已添加如下绝对路径。该 URL 似乎使用 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传递会话

如何加载资源?

【问题讨论】:

    标签: php symfony pdf


    【解决方案1】:

    我找到了解决办法。 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') }}">
    

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,Interlated 说,在asset('path/to/your/asset/or/image') 之前添加一个基本目录修复问题。

      如果您无法访问$this-&gt;get('kernel')$request(例如在侦听器中),您可以使用__DIR__ 魔术常量“手动”完成!

      我的听众在./my-project/src/MyBundle/Listener/MyListener.php 还有我的$basedir = __DIR__.'/../../../web'

      所以在你的树枝视图中&lt;img src="{{ basedir ~ asset('path/to/your/img')}}" alt=""&gt;

      【讨论】:

        猜你喜欢
        • 2019-04-12
        • 2018-10-14
        • 1970-01-01
        • 2012-11-26
        • 2011-10-26
        • 1970-01-01
        • 2014-05-09
        • 2014-06-20
        • 2011-10-22
        相关资源
        最近更新 更多