在树枝儿童中添加css和javascript

时间:2016-04-21 11:03:26

标签: javascript css symfony twig

您好我尝试在树枝儿童中添加一些css和javascript,但它不起作用。

head.html.twig:

{% stylesheets
            'bundles/mybundle/some_folder/css/myfile.min.css' filter='cssrewrite'
%}
    <link href="{{ asset_url }}" type="text/css" rel="stylesheet" media="print" />
{% endstylesheets %}

{% block custom_sheets %}
{% endblock %}

<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
{% javascripts
        '@MyBundle/Resources/public/some_folder/js/myfile.min.js'
%}
<script src="{{ asset_url }}" charset="UTF-8"></script>
{% endjavascripts %}

{% block custom_javascripts %}
{% endblock %}

layout.html.twig:

<html>
<head>
    {% block head %}
        {%- include 'MyBundle:layout:head.html.twig' with {'_title': block('title') } -%}
    {% endblock %}
</head>
<body>
   ....

   {% block body %}
   {% end block %}

   .....
</body>

custom_layout.html.twig扩展了layout.html.twig:

{% block custom_sheets %}
  {% stylesheets
    'bundles/accueil/css/my.css' filter='cssrewrite'
%}
    <link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
  {% endstylesheets %}
{% endblock %}

{% block custom_javascripts %}
    {% javascripts
        '@MyBundle/Resources/public/js/my.js'
    %}
      <script src="{{ asset_url }}" charset="UTF-8"></script>
    {% endjavascripts %}
{% endblock %}

my.css和my.js都没有加载。

为什么?

1 个答案:

答案 0 :(得分:0)

这是Twig的限制。当您include()模板时,包含该模板的模板中的模块不可用。因此,head.html.twig中定义的块将丢失。

这就是为什么不对页面的页眉和页脚执行include()的原因。无论如何,layout.html.twig模板通常非常大,所以包含页眉和页脚内容也没关系。