我在渲染扩展另一个的nunjucks templte时遇到以下控制台错误:
XML processing error: incorrect formatting Position: http://localhost/prj/js/templates/template.tpl?s=1517784777473 Line number 1, column 1:
这大致转化为:
{% extends "base/header.tpl" %}
{% block main %}
<div id="container">
<h1>Prj</h1>
<div id='element'>
whatever
</div>
</div>
{% endblock %}
(我无法直接在它的英文原始形式中找到错误,这就是我翻译它的原因)
然而,模板才能正确呈现。
我正在渲染的模板是:
<div>
<div id="header"></div>
{% block main %}{% endblock %}
</div>
这是header.tpl:
nunjucks.configure('js/templates', { autoescape: true, trimBlocks: true, lstripBlocks: true });
这是nunjucks配置:
var renderization = nunjucks.render("main.tpl", {});
$("#root").append(renderization);
这就是渲染的完成方式:
async sendInBatches(batches) {
for (const batch of batches) {
const promises = batch.map(x => asyncMethod(x));
await Promise.all(promises);
}
}
任何人都知道我为什么会收到此错误?
答案 0 :(得分:1)
我认为此错误是由浏览器生成的。当nunjucks从服务器请求下一个模板时,响应标记为XML。浏览器尝试处理它并抛出错误(因为它不是XML)。您可以简单地检查它:打开浏览器控制台(F12)并转到网络选项卡。
您必须在http-server端为nunjucks模板设置mime-type为text/html
。