我在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以避免这种情况。
答案 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>