我可以通过这段代码获得“独立”模板,但我无法使用模板继承。有什么我忽略的或任何其他人都知道的警告吗?
错误:在“... /views/index.html”的第3行找到循环扩展!
app.js:
var express = require('express')
, cons = require('consolidate')
, http = require('http')
var app = express();
app.engine('html', cons.swig);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
app.set('view options', { layout: false });
app.get('/', function(req, res){
res.render('index.html', { header: 'Express' });
});
http.createServer(app).listen(3000, function(){
console.log("Express server listening on port 3000");
});
的index.html
{% extends 'base.html' %}
{% block content %}<h1>{{ header }}</h1>{% endblock %}
base.html文件
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}Express{% endblock %}</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
答案 0 :(得分:3)
您可以为root
本身设置allowErrors
和swig
来解决此问题:
var express = require('express')
, cons = require('consolidate')
, http = require('http')
, swig = require('swig')
swig.init({ root: __dirname + '/views', allowErrors: true });
// ...
有关详细信息,请参阅Using Swig with express.js和Swig API。
答案 1 :(得分:0)
我不确定swig,但是在express3中,他们删除了模板继承,部分和布局,并将其留给模板引擎来实现。有插件可能会让你回来。