为何Express Handlebars仍寻找layouts文件夹而非layout?
问题原因及解决办法
核心原因
你写错了express-handlebars的配置项名称——框架识别的布局文件夹配置项是**layoutsDir(复数形式)**,而你写的是单数layoutDir。这个未被识别的配置项会被框架忽略,导致它依然使用默认的views/layouts路径去寻找布局文件,所以才会出现找不到文件的报错。
解决步骤
把配置里的layoutDir改成layoutsDir即可:
var exphbs = require('express-handlebars'); app.engine('hbs', exphbs.engine({ extname: 'hbs', defaultLayout: 'layout', layoutsDir: __dirname + '/views/layout/', // 修正为复数形式的layoutsDir partialsDir: __dirname + '/views/partials/' })); app.set('view engine', 'hbs');
修改后,框架就会按照你指定的/views/layout/路径去加载布局文件,无需重命名文件夹。
内容的提问来源于stack exchange,提问作者Fazeel Anwar
相关产品推荐
相关产品推荐

