我遵循您从Express Generator获得的基本应用布局,并尝试为Handlebars配置它。
段:
var exphbs = require('express-handlebars');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views/'));
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
一切顺利,直到我尝试将Handlebars的扩展名更改为.hbs
,如下所示:
app.engine('handlebars', exphbs({defaultLayout: 'main', extname: '.hbs'}));
(并重命名文件)。
结果是:
错误:无法查找视图"错误"在视图目录
中
我在express-handlebars.js源代码中查看了function ExpressHandlebars(config)
,它确实试图恰当地设置extname。
我做错了什么?
答案 0 :(得分:18)
有点违反直觉,设置扩展名是不够的。
所需的设置是:
app.engine('hbs', exphbs({defaultLayout: 'main', extname: '.hbs'}));
app.set('view engine', 'hbs');
答案 1 :(得分:1)
在views目录中创建error.hbs文件解决了我的问题。
var exphbs = require('express-handlebars');
// view engine setup
app.engine('hbs', exphbs({ defaultLayout: 'main', extname: '.hbs' }));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');