如何在Twig模板中引用命名的Assetic资产?

时间:2014-01-20 19:09:03

标签: php symfony assetic

AsseticBundle提供了定义命名资产in the Symfony's configuration file的可能性。如何使用{% javascripts %}{% stylesheets %} Twig标记在Twig模板中引用它们?

Symfony's own Assetic documentation仅提及@BundleName/Resources/file.cs包含捆绑资产的特殊表示法,但不提及指定资产。

问题Symfony2: How to properly include assets in conjunction with Twig template inheritance?在评论中有一个简短的提及,这是可能的,但没有说明如何做。

仅使用资产的名称(如Assetic's own Readme中的jquery)不起作用。 Assetic试图查看显然不存在的文件web/jquery

1 个答案:

答案 0 :(得分:1)

简短版本: 在模板中使用“@name”:

版本较长:

如果您的资产配置如下所示:

[config.yml]
assetic:
    assets:
        bootstrap_css:
                inputs:
                    - %kernel.root_dir%/../web/components/bootstrap/css/bootstrap.css
                    - %kernel.root_dir%/../web/components/bootstrap/css/bootstrap-theme.css
        jquery_ui_css: 
            ....

现在您可以在模板中使用它,例如在base.html.twig

<html><head>
...
{% stylesheets output='compiled/main.css'
    "@bootstrap_css"
    "@jqueryui_css"
    ...etc
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
</head></html

这个也定义了那里的所有css应该连接到编译目录中的一个main.css文件中。