我使用express-generator生成了一个快速网站,我需要引用一个位于views文件夹中的子文件夹内的部分hbs文件。
我的文件夹结构就像这样
在我的主布局文件(layout.hbs)中,我引用了head和nav_bar文件,我得到了一个无法找到头文件的错误
错误是
C:\MovementForNewNigeria\app\views\index.hbs: The partial head could not be found
Error: C:\MovementForNewNigeria\app\views\index.hbs: The partial head could not be found
at Object.invokePartial (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\runtime.js:266:11)
at Object.invokePartialWrapper [as invokePartial] (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\runtime.js:68:39)
at Object.eval (eval at createFunctionContext (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\compiler\javascript-compiler.js:254:23), <anonymous>:6:28)
at main (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\runtime.js:173:32)
at ret (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\runtime.js:176:12)
at ret (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\compiler\compiler.js:525:21)
at C:\MovementForNewNigeria\app\node_modules\hbs\lib\hbs.js:87:17
at C:\MovementForNewNigeria\app\node_modules\hbs\lib\hbs.js:69:11
at done (C:\MovementForNewNigeria\app\node_modules\hbs\lib\async.js:74:20)
at C:\MovementForNewNigeria\app\node_modules\hbs\lib\hbs.js:64:20
答案 0 :(得分:1)
解决方案是注册部分或更有效地注册所有部分
与
var hbs = require('hbs');
hbs.registerPartials(__dirname + '/views/partials');
https://github.com/pillarjs/hbs
感谢turmuka帮助进口hbs。
答案 1 :(得分:0)
您需要在此处使用此代码。它将注册您指定的路径。
app.engine('hbs', hbs({
extname: 'hbs',
defaultLayout: 'base',
layoutDir: __dirname + '/views/layouts', // for layouts
partialsDir : [
// path to your partials
__dirname + '/views/partials',
]
}));
答案 2 :(得分:0)
您必须使用“ registerPartials”功能注册部分,如本documentation中所述,但是您必须这样做:
var hbs = require('hbs');
var path = require('path');
hbs.registerPartials(path.join(__dirname + '/views/partials'));
如果跳过“ path.join”部分,则可能会在Windows上出错,例如,因为该路径将是“ C:\ some-dev-folder \ express-app / views / partials”而不是“ C:\ some-dev-folder \ express-app \ views \ partials“