You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:14:52