在Twig模板中包含SVG

时间:2017-10-25 13:40:59

标签: php symfony svg twig symfony-2.8

我正在将资产从PNG更改为SVG,但是我很难将这些SVG包含在我的Twig模板中。

我试图像这样包含SVG:

{{ source('/assets/img/crmpicco-horizontal-logo.svg') }}

但是,这会导致以下错误:

  

无法找到模板" /assets/img/crmpicco-horizo​​ntal-logo.svg"   (调查:   /库/ Web服务器/文件/ crmpicco / symfony中/应用/资源/视图,   /库/ Web服务器/文档/ crmpicco / symfony的/供应商/ symfony的/ symfony的/ SRC / Symfony的/网桥/枝条/资源/视图/表格)。

为什么我不能将此SVG包含在与其他资产相同的目录中?具体来说,我有兴趣了解为什么SVG不能作为Assetic的资产对待。

2 个答案:

答案 0 :(得分:1)

您必须使用twig扩展名crmpicco-horizontal-logo.svg.twig重命名svg文件并执行此操作:

{% include ":svg:crmpicco-horizontal-logo.svg.twig" %}

此示例中的文件夹svg位于app / Ressources / views中

答案 1 :(得分:0)

这是我使用的解决方案(带有Symfony 4和Webpack Encore的Twig):

  1. 在您的树枝配置中,声明您的公共路径:
twig:
    paths:
        "%kernel.project_dir%/public": public_path
  1. 像这样加载您的svg资产:
{{ source('@public_path'~asset('build/images/your_file.svg')) }}