我使用Swig作为模板引擎。
我需要包含一个部分但只包含在另一个部分的块中。但是 Swig 将它包含在下面,忽略了块标记。这是它的外观:
1.
布局.html
<!DOCTYPE html>
<html>
<head>
{% block title %}{% endblock %}
{% block headtag %}
<link rel='stylesheet' href='/assets/css/global.css' />
<link rel='stylesheet' href='/bower_components/bootstrap/dist/css/bootstrap.css' />
<script src="/bower_components/jquery/dist/jquery.js"></script>
<script src="/bower_components/bootstrap/dist/js/bootstrap.js"></script>
{% endblock %}
</head>
<body>
<div class="container cmt">
{% block content %}{% endblock %}
</div>
</body>
</html>
2.
这是请求后呈现的页面视图。
索引.html
{% extends 'layouts/layout.html' %}
{% block title %}
<title>{{ title }}</title>
{% endblock %}
{% block headtag %}
{% parent %}
<link href="/assets/css/index/index.css" rel="stylesheet">
<link href="/assets/css/header.css" rel="stylesheet">
{% endblock %}
{% block content %}
{% include 'index_content.html' %}
{% endblock %}
3.
在这里,我包含了一个部分标题 ( partials/header.html
)。并且此标头部分有一个空块标记 ( header_nav
),我想在其中包含另一个部分 ( header_nav.html
)。但只能进块。请参阅下面的header.html。
index_content.html
{% include 'partials/header.html' %}
{% block header_nav %}
{% include 'header_nav.html' %}
{% endblock %}
4.
这是一个 html 代码partials/header.html
。请参阅块标记header_nav
。在那个块中,我想放置header_nav.html。但它不起作用。它将header_nav.html放在partials/header.html的下面:
<div class="clearfix mb30">
<div class="row">
<div class="col-md-3">
<div id="logo_div" class="">
<div class="logo_div">
<a href="/" title="">
<span class="logo_span"></span>
</a>
</div>
</div>
</div>
<div class="col-md-9 hctrlbar">
{% block header_nav %}
... I want to include a partial here only ...
{% endblock %}
</div>
</div>
</div>
... But Swig ignores header_nav block and places here for some reason ...
如何实现它?据我所知,这是 Swig 的一个真正缺点。有一些解决方法吗?