php - 在 Twig 模板中包含 SVG

标签 php symfony svg twig symfony-2.8

我正在将我的 Assets 从 PNG 更改为 SVG(在适当的情况下),但是我很难将这些 SVG 包含在我的 Twig 模板中。

我正在尝试像这样包含 SVG:

{{ source('/assets/img/crmpicco-horizo​​ntal-logo.svg') }}

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

Unable to find template "/assets/img/crmpicco-horizontal-logo.svg" (looked into: /Library/WebServer/Documents/crmpicco/symfony/app/Resources/views, /Library/WebServer/Documents/crmpicco/symfony/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form).

为什么我不能将此 SVG 包含在与其他资源相同的目录中?具体来说,我有兴趣找出为什么 SVG 不能被视为 Assetic 的 Assets 。

最佳答案

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

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

关于php - 在 Twig 模板中包含 SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46934020/

相关文章:

php - 在 Linux 服务器上使用 PHP 上传文件不起作用

javascript - 独立 SVG 中的动画(使用 ecmascript(和 jQuery?!))

php - 如何在 Symfony 2.7 中关闭用户的所有 session ?

symfony - LiipImageBundle 按比例增加大小和比率

symfony - 奏鸣曲管理包 : strange with labels

php - 关闭浏览器后清除缓存 - symfony2

javascript - RaphaelJS 条纹成 SVG

node.js - 从 Node.js 中的多个 SVG 图形生成 SVG 字体

javascript - php 文件到 php 数组到 js 数组 - 作为数组的数组

php - 如何在 PHP html5 上传中获取服务器响应