节点JS - 使用路由器添加更多页面(ejs模板)

时间:2016-01-27 13:10:16

标签: javascript node.js ejs

我是Node / EJS的新手。所以需要你澄清创建新路线。我可以在Node js中使用EJS模板系统轻松集成静态html文件。但是我无法实现在身体部分内部路由(使用路径插入另一个模板)。

我的代码:views / index.ejs

<!DOCTYPE html>
<html lang="en">
  <head>
    <% include ./templates/head.ejs %>
 </head>
  <body class="skin-blue">
      <div class="wrapper">
          <% include ./templates/header.ejs %> 
                <section class="content">
                <div class="content-section container">
                    <div class="row">
                           <% include ./contents/aboutus.ejs %> //aboutus page is rendering      
                    </div>
                </div>
            </section>
           <% include ./templates/footer.ejs %>      
      </div>
   <% include ./contents/help-popup.ejs %> 
   <% include ./templates/jsfiles.ejs %> 
  </body>
</html>

在这里,显然,aboutus.ejs在身体部位内正常工作。现在我想通过点击aboutus.ejs中的链接来调用careers.ejs。页眉和页脚不应该改变。如何添加&amp;通过路由渲染careers.ejs?

1 个答案:

答案 0 :(得分:1)

我认为您期待像JADE这样的布局系统。这可以通过npm包EJS-Locals来实现。其中不是调用ejs文件,而是可以为HTML提供正文部分。

Ex:Boilerplate

<!DOCTYPE html>
<html>
  <head>
    <title>It's <%=who%></title>
    <%-scripts%>
    <%-stylesheets%>
  </head>
  <body>
    <header>
      <%-blocks.header%>
    </header>
    <section>
      <%-body -%>
    </section>
    <footer>
      <%-blocks.footer%>
    </footer>
  </body>
</html>

aboutus.ejs:

<% layout('boilerplate') -%>
 <% script('foo.js') -%>
 <% stylesheet('foo.css') -%>
 <h1>I am the <%=what%> list </h1>
 <% block('header', "<p>I'm in the header.</p>") -%>
 <% block('footer', "<p>I'm in the footer.</p>") -%>

career.ejs:

<% layout('boilerplate') -%>
<% script('foo.js') -%>
<% stylesheet('foo.css') -%>
<h1>I am <%=what%> Programmer in USA  </h1>
<% block('header', "<p>I'm in the header.</p>") -%>
<% block('footer', "<p>I'm in the footer.</p>") -%>

因此,在此您可以使用EJS-Locals包含其他模板。