如何更改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在不同的url中,home.html的url是“/”,而home.html的url是“user / recent”

所以如果我在home.html页面中点击“> <%= user.title%>,它会正确跳转到正确的页面/ user /'userid' ,但是当涉及到list.html时,链接变成/ user / user /'userid' ,这是错误的

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

如果你在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> 

这里是你的新列表。ejs:

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

没有前导/在你的链接,你打电话到一个相对path,现在你正在处理一个绝对path(即:从你的服务器根开始)。