我不确定这是 express 的问题,还是我对 nunjucks 做错了什么。我想创建一个模板层次结构,其中模板包含所有公共部分,特定页面扩展模板。由于某种原因,body 字段是块状的。如果我将扩展指令更改为包含在 template.nunj 中,一切正常,但我无法扩展标题。我还尝试在 template.nunj 和 index.nunj 中显式声明标题块并调用 super() 但由于某种原因,标题或正文为空白。
快速设置:
nunjucks.configure(path.resolve(__dirname, '.', 'views'), {
autoescape: true,
express: app,
watch: true,
cache: false,
});
app.set('view engine', 'nunj');
布局.nunj:
<!DOCTYPE html>
<html lang="en">
{% extends './common/header.nunj' %}
<body>
<div class="container">
{% block mainContainer %}
<p>This should be working</p>
{% endblock %}
</div>
</body>
</html>
索引.nunj
{% extends 'layout.nunj' %}
{% block mainContainer %}
{{ super() }}
<p>This should be rendering</p>
{% endblock %}
header.nunj
{% block header %}
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/css/style.css">
<title>Dari Dictionary</title>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
{% endblock %}