1

我在 node.js 中使用 ejs 模板,我遇到了路由问题,例如

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

主页.html

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

列表.html

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

列表.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.title %> ,它会正确跳转到正确的页面/user/'userid'。但是当涉及到 list.html 时,链接变为/user/user/'userid',这是错误的

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

4

2 回答 2

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>

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

于 2013-04-04T15:18:38.350 回答
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>
于 2013-04-04T15:18:45.200 回答