我正在为我的网络应用程序使用express 4 - ejs组合,我想知道如何根据被调用的路由/url渲染多个文件。
假设我有
header.ejs
,我想在每个页面上渲染,而 header.ejs 代码是:
<div class="wrapper">
<div class="header-area">Header IS Gonna Be Here</div>
<div class="content-area">Content Area Gonna Be Different on Every Page Depend on the Router</div>
</div>
我调用 header.ejs 文件的现有方法是
using res.render()
但我无法弄清楚同时渲染多个文件。谢谢您的回答,如果您觉得我的问题已经被问到了,可以给我链接吗,我会查看一下。
这个概念称为模板化布局,基本上是创建保持静态的部分内容,例如页眉页脚。在 res.render() 上,您将使用所需的数据渲染视图,并添加页眉和页脚:
app.get('/', function(req, res){
res.render('index',{user:"John Smith"})
// pass main ejs file name, pass any data variables
});
要渲染名为index.ejs的文件,请使用include语句与其他ejs文件组合。请确保 index.ejs 位于您最初设置的视图目录中
<!DOCTYPE html>
< html lang="en">
< head>
<% include ../partials/head %>
</ head>
< body class="container">
< header>
<% include ../partials/header %>
</ header>
< main>
< div class="jumbotron">
< h1> This is great </ h1>
< p> Welcome to templating using EJS </ p>
< p> welcome <%= user%>;< /p>
</ div>
</ main>
< footer>
<% include ../partials/footer %>
</ footer>
</ body>
</ html>
使用像我这样的包含方法:<%- include('includes/header') %>。为此,您需要创建一个文件夹 header.ejs,并将所有代码移至此处,并且需要在所有 ejs 文件中使用包含连接谢谢您的关注!