symfony2 错误分支 "A template that extends another one cannot have a body"
symfony2 error twig "A template that extends another one cannot have a body"
我有错误"A template that extends another one cannot have a body in 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 %}
这项工作:
{% extends "::layout.html.twig" %}
{% block content %}
Test
{% endblock %}
与 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>
如果我直接添加这个
{% stylesheets 'bundles/DFSite/css/*' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
代替 layout.html.twig 中的空 %stylesheets%,它有效
我很困惑……
这里的错误很容易理解:当您扩展模板时,您被迫仅使用已定义的父块 或 全新块。
查看您的 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>
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 %}
我有错误"A template that extends another one cannot have a body in 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 %}
这项工作:
{% extends "::layout.html.twig" %}
{% block content %}
Test
{% endblock %}
与 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>
如果我直接添加这个
{% stylesheets 'bundles/DFSite/css/*' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
代替 layout.html.twig 中的空 %stylesheets%,它有效
我很困惑……
这里的错误很容易理解:当您扩展模板时,您被迫仅使用已定义的父块 或 全新块。
查看您的 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>
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 %}