无法使用Express Handle查找目录中的视图
问题描述:
我正在关注从Express Generator获取的基本应用布局,并尝试将其配置为Handlebars。无法使用Express Handle查找目录中的视图
段:
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');
一切都很好,直到我尝试和扩展把手更改为.hbs
如下:
app.engine('handlebars', exphbs({defaultLayout: 'main', extname: '.hbs'}));
(并重新命名过程的文件)。
导致:
Error: Failed to lookup view "error" in views directory
我看着在function ExpressHandlebars(config)
快递-handlebars.js来源,它试图设置extname apppropriately。
我在做什么错?
答
有点违反直觉,设置扩展名是不够的。
所需的安装:
app.engine('hbs', exphbs({defaultLayout: 'main', extname: '.hbs'}));
app.set('view engine', 'hbs');
对于其他任何人没有看到它的第一:引擎名称必须是相同的文件扩展名。有谁知道为什么? – musicin3d 2016-02-09 17:53:47
@ musicin3d它确实感觉像是Express中的一个错误。 – bcmcfc 2016-02-09 18:38:28
找到了这个:https://github.com/strongloop/express/blob/e5ec966b2f068e935ea1b33374fac133dd06cdc8/lib/application.js#L262 – bcmcfc 2016-02-09 18:44:57