2014-10-19 26 views
6

我正在關注從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。

我在做什麼錯?

回答

18

有點違反直覺,設置擴展名是不夠的。

所需的安裝:

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

相關問題