如何设置车把的布局目录?

Men*_*des 0 javascript node.js express handlebars.js

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

- server.js
- routes
    |-- index.js
-config
    |-- config.js
- client
    |-- public
    |     | -- js
    |     | -- css
    |     | -- font
    |-- views
         |-- index.html
         |-- layout
              |-- layout.handlebars
    | ... other directories
Run Code Online (Sandbox Code Playgroud)

这是我的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' }));
Run Code Online (Sandbox Code Playgroud)

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

我在这里想念什么?

Swa*_*iri 5

好像您正在使用快速车把

创建实例时,需要指向目录。

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

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

另外,视图引擎需要设置为hbs.engineejs

app.engine('hbs', hbs.engine);
app.set('view engine', 'hbs');
Run Code Online (Sandbox Code Playgroud)