我有错误"扩展另一个模板的模板不能在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%,它可以工作
我糊涂了...
这里很容易理解错误:扩展模板时,您只能使用已定义的父块或全新块.
看看你的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>
Run Code Online (Sandbox Code Playgroud)
{% 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)