我有错误"扩展另一个模板的模板不能在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%,它可以正常工作
我很困惑......
答案 0 :(得分:6)
这里很容易理解错误:扩展模板时,您只能使用父或全新块的已定义块。
期待你的layout.html.twig,很容易注意到{% stylesheets %}
你没有定义任何块。在您的子模板中,这将导致我所说的错误。
工作解决方案应该是这个
<!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>
{% extends "::layout.html.twig" %}
{% block stylesheets %}
{% stylesheets 'bundles/DFSite/css/*' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
{% block content %}
Test
{% endblock %}