如何更改node.js中的ejs模板以避免这种情况

时间:2013-04-04 15:07:48

标签: node.js ejs

我在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在不同的网址中, home.html的网址为'/',而home.html的网址为'user / recent'

因此,如果我点击home.html页面中的“&gt;&lt;%= user.title%&gt;”,它会正确跳转到右侧页面 / user /'userid'。但是当涉及到list.html时,链接变为 / user / user /'userid',这是错误的

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

2 个答案:

答案 0 :(得分:1)

这是你的新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>

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

答案 1 :(得分:1)

如果你在网址的开头加上一个斜杠,那你就相对于基本网址。通常这是你的域名。

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