symfony2错误枝条"扩展另一个的模板不能有一个体"

Try*_*yss 2 symfony

我有错误"扩展另一个模板的模板不能在DFSiteBundle中有一个主体:Accueil:index.html.twig",但我在块外面没有html.

复制问题的最小代码:

这不起作用:

{% extends "::layout.html.twig" %}

{% stylesheets 'bundles/DFSite/css/*' filter='cssrewrite' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

{% block content %}
    Test
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

这项工作:

{% extends "::layout.html.twig" %}

{% block content %}
    Test
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

使用layout.html.twig:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    {% stylesheets %}{% endstylesheets %}
    <title>{% block title %}The title{% endblock %}</title>
</head>
<body>

{% block content %}
{% endblock %}

</body>
Run Code Online (Sandbox Code Playgroud)

如果我直接添加这个

{% stylesheets 'bundles/DFSite/css/*' filter='cssrewrite' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Run Code Online (Sandbox Code Playgroud)

而不是layout.html.twig中的空%stylesheets%,它可以工作

我糊涂了...

Don*_*sto 6

这里很容易理解错误:扩展模板时,您只能使用已定义的父块全新块.

看看你的layout.html.twig很容易注意到{% stylesheets %}你没有定义任何块.在您的子模板中,这将导致我正在谈论的错误.

一个有效的解决方案就是这样

1)修改layout.html.twig

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    {% block stylesheets %}{% endblock %}
    <title>{% block title %}The title{% endblock %}</title>
</head>
<body>

{% block content %}
{% endblock %}

</body>
Run Code Online (Sandbox Code Playgroud)

2)修改扩展先前模板的文件

{% extends "::layout.html.twig" %}

{% block stylesheets %}
    {% stylesheets 'bundles/DFSite/css/*' filter='cssrewrite' %}
        <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

{% block content %}
    Test
{% endblock %}
Run Code Online (Sandbox Code Playgroud)