是否可以将多个<% – %>语句添加到node.js ejs布局
我刚刚开始使用node.js,express和ejs。 我正在用layout.ejs文件很难。 我想要做的是类似于你可以在.net中做什么,你有多个内容占位符,在视图中,你可以有多个块进入不同的占位符。
像这样的东西:
<!DOCTYPE html> <html> <head> <title><%- title %></title> </head> <body> <%- body %> </body> </html>
我的观点应该如何?
对于给定的布局文件,您可以编写一个my_body.ejs文件,其中包含:
<% title = 'My Page – My Site' %> <p>The body content could go there</p>
这将呈现:
<!DOCTYPE html> <html> <head> <title>My Page – My Site</title> </head> <body> <p>The body content could go there</p> </body> </html>
对于更复杂的头文件,你也可以使用partial:
my_body.ejs:
<% header = partial('_header.ejs') %> <p>The body content could go there</p>
_header.ejs:
<h1>My Page Title</h1>
layout.ejs:
<!DOCTYPE html> <html> <head> <title>My Page – My Site</title> </head> <body> <div id="header"><%- header %></div> <div id="content"><%- body %></div> </body> </html>
代替
<!DOCTYPE html> <html> <head> <title>My Page – My Site</title> </head> <body> <div id="header"><%- header %></div> <div id="content"><%- body %></div> </body> </html>
你可以使用
<!DOCTYPE html> <head> <title><%= title%></title> </head <html> <%- partial('header.ejs') %> <%- body %> </html>
这个代码为你的layout.ejs
<% – body%> – 标签应该在你的“ app.js ”中定义为get-methode:
app.get('/index', function(req, res){ res.render('index.ejs', { title: 'My Site'}); });
现在,您可以通过“localhost:PORT / index”(默认端口:3000)(在您的浏览器中input您的地址栏)路由index.html(“index.ejs”),“app.js”将路由index.ejs并生成整个代码。
使用<% – partial('header.ejs')%>你可以加载你的代码片段。 一个标题通常应该加载到你的每一个站点上(这个标题是静态的)。
现在你必须修改所有的.ejs文件 ,但你的layout.ejs。 意即:
你的index.ejs文件只包含html标签。 但没有标题,没有文档types等等,只是你的“身体”(从<“body”>到<“/ body”>)的所有标签。
=你的index.ejs文件:
<div> ... </div>