XML格式错误nunjucks模板渲染

时间:2018-02-05 19:40:06

标签: javascript templates nunjucks

我在渲染扩展另一个的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);
    }
}

任何人都知道我为什么会收到此错误?

1 个答案:

答案 0 :(得分:1)

我认为此错误是由浏览器生成的。当nunjucks从服务器请求下一个模板时,响应标记为XML。浏览器尝试处理它并抛出错误(因为它不是XML)。您可以简单地检查它:打开浏览器控制台(F12)并转到网络选项卡。

您必须在http-server端为nunjucks模板设置mime-type为text/html