2016-04-21 99 views
1

你好,我尝试在树枝子中添加一些CSS和JavaScript,但它不起作用。在树枝子中添加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被加载。

为什么?

+0

只需在layout.html.twig中调用它们即可。根据我的说法,最好在布局中包含所有脚本和css文件 – Letsrocks

回答

0

这是枝条的限制。当您使用模板时,包含模板的块在包含该模板的模板中不可用。因此head.html.twig中定义的块会丢失。

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