我的node
版本是v10.2.1,express
版本是4.16.0,ejs
版本是2.5.7。
我希望以后可以更改布局的名称。
所以我这样路由:
router.get('/', function(req, res, next) {
res.render('index', { title: 'my homepage' , layout: 'basic'});
});
和index.ejs
我在索引中这样写了一个include:
<% include ./layouts/basic/header.ejs %>
现在,我想将basic
更改为<%= layout %>
,但是
<% include ./layouts/<%= layout>/header.ejs %>
原因:
Could not find matching close tag for "<%".
然后
<% include ./layouts/%><%= layout %><%/header.ejs %>
原因:
Could not find the include file "./layouts/"
我该如何解决?
答案 0 :(得分:2)
我正在考虑您需要两个标题视图
因此在views目录中,我已经创建了相应的目录。
index.ejs
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<%if(layouts=='horizontal'){%>
<%include ./horizontal/header%>
<%}%>
<%if(layouts=='vertical'){%>
<%include ./vertical/header%>
<%}%>
</body>
</html>
在这里,我已经从路由中传递了layouts
变量。希望它可以帮助您解决问题。