Express 使用布局模板表达js-ejs
在我的express应用程序中, 我已将视图引擎更改为ejsExpress 使用布局模板表达js-ejs,express,ejs,Express,Ejs,在我的express应用程序中, 我已将视图引擎更改为ejs 有人知道是否仍然可以利用视图模板吗?Express.js如果我没记错的话,就让模板引擎来决定。因此,如果ejs不支持布局,那么你就不走运了。你可以用这个模块来实现 layout.ejs <html> <body> <% include nav %> <h1><%= title %></h1> <%-
有人知道是否仍然可以利用视图模板吗?Express.js如果我没记错的话,就让模板引擎来决定。因此,如果ejs不支持布局,那么你就不走运了。你可以用这个模块来实现 layout.ejs
<html>
<body>
<% include nav %>
<h1><%= title %></h1>
<%- body %>
</body>
</html>
事实上,在Express 3.X不支持layout.ejs之后,如果您想使用该布局,以下步骤应由您自己完成:
package.json
文件中添加依赖项“express partials”:“*”npm install
安装最新版本的express partials
app.js中需要express partials
var partials=require('express-partials')代码>
app.use(partials())app.set('view engine','ejs')下的code>代码>在app.js
文件中
在那之后,您可以设计
layout.ejs
并在layout.ejs
文件中添加
块,这就足够了,而且运行良好。根据express的文档,它应该支持布局,但我还没有让它正常工作。3.x删除了布局。网站上的指南是2.x。您可以使用ejs locals定义布局。@Pickels这仍然是真的吗?网站上的指南总体上相当糟糕。@onmouse就我所知,它仍然是正确的。如果你需要一个不支持jade布局的引擎,我可以推荐swig。它是一个真正可靠的模板引擎,具有jade的所有功能,但没有haml语法
<% layout('layout') -%>
<form>...</form>
<nav>
<% if ( session.logged_in ) { %>
<a href="/account">account</a>
<a href="/logout">logout</a>
<% } else { %>
<a href="/signup">signup</a>
<a href="/login">login</a>
<% } %>
<a href="/">home</a>
</nav>
exports.login.get = function(req, res){
res.locals.session = req.session;
res.render('login', { title: 'Login to your account' });
};
"dependencies": {
"express": "3.1.0",
"ejs": "*",
"express-partials": "*"
}