无法使用Express Handle查找目录中的视图

无法使用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'); 
+3

对于其他任何人没有看到它的第一:引擎名称必须是相同的文件扩展名。有谁知道为什么? – musicin3d 2016-02-09 17:53:47

+0

@ musicin3d它确实感觉像是Express中的一个错误。 – bcmcfc 2016-02-09 18:38:28

+0

找到了这个:https://github.com/strongloop/express/blob/e5ec966b2f068e935ea1b33374fac133dd06cdc8/lib/application.js#L262 – bcmcfc 2016-02-09 18:44:57