更改NodeJ中的Handlebars扩展

时间:2017-11-28 10:09:57

标签: node.js templates express handlebars.js

Handlebars template's filename extension

您好, 我的模板文件获得了扩展名.handlebars,我想将其更改为.hbs

const express = require('express');
const exphbs  = require('express-handlebars');

const app = express();

app.engine('handlebars', exphbs({defaultLayout: 'index'}));
app.set('view engine', 'handlebars');

handlebars更改为hbs并重命名文件时,会出现错误。找不到这些文件。

缺少什么?

2 个答案:

答案 0 :(得分:1)

尝试设置以下属性

const exphbs  = require('express-handlebars');
const handlebars = exphbs.create({
  // layoutsDir: path.join(__dirname, 'app/views/layouts'),
  // partialsDir: path.join(__dirname, 'app/views/partials'),
  defaultLayout: 'index',
  extname: 'hbs'
});

app.engine('hbs', handlebars.engine);
app.set('view engine', '.hbs');

答案 1 :(得分:1)

更改您的代码:

`

const express = require('express');
var app = express();
const hbs = require('express-handlebars');
app.set('views', path.join(__dirname, 'views'));
app.engine('hbs', hbs({extname : 'hbs', defaultLayout: 'index', layoutsDir: __dirname+'/views/layouts'}));
app.set('view engine', 'hbs');

更改文件的扩展名 .hanlebars.hbs并将index.hbs文件放在path/to/project/views/layouts内,.hbs文件的其余部分应保留在path/to/project/views/