【问题标题】:How to set handlebars layout directory?如何设置车把布局目录?
【发布时间】:2017-05-06 05:55:43
【问题描述】:

这是我的nodejs express 使用把手设置视图和目录:

- server.js
- routes
    |-- index.js
-config
    |-- config.js
- client
    |-- public
    |     | -- js
    |     | -- css
    |     | -- font
    |-- views
         |-- index.html
         |-- layout
              |-- layout.handlebars
    | ... other directories

这是我的 node.js 代码:

// Set static folder
app.use(express.static(path.join(__dirname, '/client/public')));
// Views and view engine
app.set('views', path.join(__dirname, '/client/views'));
app.set('view engine', 'ejs');
app.engine('html', handlebars({ defaultLayout: 'layout' }));

Handlebars 无法找到我的布局。它看着app/views/layouts/layout.handlebars,但它应该看着app/client/views/layouts/layout.handlebars

我在这里错过了什么?

【问题讨论】:

标签: javascript node.js express handlebars.js


【解决方案1】:

好像你在使用express-handlebars

您需要在创建目录时指向目录。

const hbs = exphbs.create({
    extname      :'hbs',
    layoutsDir   : 'path/to/layout/directory',
    defaultLayout: 'main',
    helpers      : 'path/to/helpers/directory',
    partialsDir  : [
        'path/to/partials/directory'
    ]
});

如果您不使用自定义文件夹位置启动它,它会在默认位置查找文件。

另外,视图引擎需要设置为hbs.engine 而不是ejs

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

【讨论】:

  • partialsDir 是指views/ 目录吗?但是默认的 layoutsDir 是views/layouts 对吧?
猜你喜欢
  • 2015-01-01
  • 1970-01-01
  • 2016-12-08
  • 2017-11-27
  • 1970-01-01
  • 2013-01-25
  • 2021-11-30
  • 1970-01-01
  • 2011-03-21
相关资源
最近更新 更多