Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 从包含的细枝模板干净地添加JS和CSS_Symfony_Twig_Assetic - Fatal编程技术网

Symfony 从包含的细枝模板干净地添加JS和CSS

Symfony 从包含的细枝模板干净地添加JS和CSS,symfony,twig,assetic,Symfony,Twig,Assetic,我想知道是否有一种干净的方法可以从包含的模板中添加JS和CSS 例如,如果layout.html.twig具有: {% include 'GenericBundle:Generic:page.html.twig' with {'data': data} %} ... {% block javascript %} {% javascripts '@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'

我想知道是否有一种干净的方法可以从包含的模板中添加JS和CSS

例如,如果layout.html.twig具有:

{% include 'GenericBundle:Generic:page.html.twig' with {'data': data} %}
...
{% block javascript %}

    {% javascripts
        '@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'
        '@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js'
    %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}

{% endblock %}
{%include'GenericBundle:Generic:page.html.twig'和{'data':data}%}
...
{%block javascript%}
{%javascripts
“@GenericBundle/Resources/public/js/app/jquery/jquery.min.js”
“@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js”
%}
{%endjavascripts%}
{%endblock%}
在genericbundle页面中,我希望包含更多的Javascript,但将其添加到已建立的Javascript块中,以保持HTML和JS的最佳实践


有没有干净的方法可以做到这一点?我使用的是Symfony2,可能会使用单例之类的解决方案,但如果有可用的方法,我宁愿使用更干净的方法。

我知道我参加聚会有点晚,但使用Twig 1.2,您可以使用标记和功能:

GenericBundle:Generic:page.html.twig

{% block javascripts %}
    <script src="..."></script>
{% endblock %}
{% block included_content %}
   Bar
{% endblock %}
{% use 'GenericBundle:Generic:page.html.twig' with javascripts as page_javascripts %}

{% block javascript %}

    {% javascripts
        '@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'
        '@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js'
    %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
    {{ block('page_javascript') }} // Don't forget the 'braces'

{% endblock %}

...
{{ block('included_content') }} // Don't forget the 'braces'
{%block javascripts%}
{%endblock%}
{%block included_content%}
酒吧
{%endblock%}
layout.html.twig

{% block javascripts %}
    <script src="..."></script>
{% endblock %}
{% block included_content %}
   Bar
{% endblock %}
{% use 'GenericBundle:Generic:page.html.twig' with javascripts as page_javascripts %}

{% block javascript %}

    {% javascripts
        '@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'
        '@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js'
    %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
    {{ block('page_javascript') }} // Don't forget the 'braces'

{% endblock %}

...
{{ block('included_content') }} // Don't forget the 'braces'
{%use'GenericBundle:Generic:page.html.twig'和javascripts一起作为page\u javascripts%}
{%block javascript%}
{%javascripts
“@GenericBundle/Resources/public/js/app/jquery/jquery.min.js”
“@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js”
%}
{%endjavascripts%}
{{block('page_javascript')}}//不要忘记大括号
{%endblock%}
...
{{block('included_content')}}//不要忘记大括号

您必须在{{block('page_javascript')}}中加引号才能使其工作,否则您会得到一条“变量…不存在…”错误消息{%include…with{javascripts:block('javascripts')}%}对我来说效果很好。