【问题标题】:how to change the ejs template in node.js to avoid this situation如何更改node.js中的ejs模板以避免这种情况
【发布时间】:2013-04-04 23:18:45
【问题描述】:

我在node.js中使用ejs模板,路由有问题,比如

我有两个 html 文件,home.html 和 list.html,它们都加载一个 list.ejs 文件以显示相同的内容 - 用户列表。

home.html

<div class="container-fluid content">   
    <% include users/list %>        
</div>

list.html

<div class="container-fluid content">   
    <% include course/list %>       
</div>

list.ejs

    <article>
        <h2><a href="user/<%= user._id %>" ></a><%= user.title %></h2>
        <p>
            <a href="user/<%= user._id %>" >@waynespiegel</a><%= user.description %>
        </p>
    </article>

然而,问题是 home.html 和 list.html 在不同的 url 中, home.html 的 url 是 '/' 而 home.html 的 url 是 'user/recent'

所以如果我点击 home.html 页面中的“ >,它会正确跳转到正确的页面,/user/'userid'。但是当它来到list.html,链接变成/user/user/'userid',错了

所以我的问题是如何更改 ejs 以避免这种情况。

【问题讨论】:

    标签: node.js ejs


    【解决方案1】:

    如果您在 url 的开头放置一个斜杠,则表示它相对于基本 url。通常这是您的域。

    <article>
        <h2><a href="/user/<%= user._id %>" ></a><%= user.title %></h2>
        <p>
            <a href="/user/<%= user._id %>" >@waynespiegel</a><%= user.description %>
        </p>
    </article>
    

    【讨论】:

      【解决方案2】:

      这是你的新 list.ejs:

      <article>
          <h2><a href="/user/<%= user._id %>" ></a><%= user.title %></h2>
          <p>
              <a href="/user/<%= user._id %>" >@waynespiegel</a><%= user.description %>
          </p>
      </article>
      

      如果链接中没有前导 /,则您调用的是相对路径,现在您正在处理的是绝对路径(即:从您的服务器根目录开始)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-14
        • 2020-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多