我知道这已经被问了一个很长前一段时间,但没有人在这篇文章中显示出答案。所以我会在这里做。为了确保每个人都在同一页面上,我会在我的答案中详细说明。如果看起来过于简单,我会提前道歉。
在您的server.js文件(或app.js,无论您将handlebars定义为视图引擎的位置)中。根据您使用的npm包,如hbs或express-handlebars等,它可能看起来不同,但与此类似。注意:在这个例子中我使用了express-handlebars。
file:server。JS
...
var express = require('express'),
hbs = require('express-handlebars'),
app = express();
...
app.engine('hbs', hbs({
extname: 'hbs',
defaultLayout: 'main',
layoutsDir: __dirname + '/views/layouts/',
partialsDir: __dirname + '/views/partials/'
}));
app.set('view engine', 'hbs');
...
和文件结构应该是这个样子:
| /views/
|--- /layouts/
|----- main.hbs
|--- /partials/
|----- header.hbs
|----- footer.hbs
|----- ... etc.
|--- index.hbs
| server.js
和你main.hbs文件应该是这样的:
文件:main.hbs
...
{{> header }}
...
<span> various other stuff </span>
...
{{> footer }}
为了表示部分你使用此语法:{{> partialsNames }}
。
这并没有真正回答这个问题......什么建议代码结构,实现了OP的场景? – 2014-06-11 21:56:23
根本没有回答这个问题。 – 2014-11-27 14:35:05