ejs模板表达式中的ejs模板表达式(不包括)

时间:2018-06-22 02:40:34

标签: node.js express ejs

我的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/"

我该如何解决?

1 个答案:

答案 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变量。希望它可以帮助您解决问题。