Javascript 带有node.js和ejs的多页面站点中的链接不起作用
我在node.js/ejs中的多页网站有问题。我想这是路线问题,但我相信我的路线设置正确。我的索引页面呈现良好,但当我尝试跟踪页面上的链接时,会出现“Cannot get/”错误 我的相关前端代码:Javascript 带有node.js和ejs的多页面站点中的链接不起作用,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我在node.js/ejs中的多页网站有问题。我想这是路线问题,但我相信我的路线设置正确。我的索引页面呈现良好,但当我尝试跟踪页面上的链接时,会出现“Cannot get/”错误 我的相关前端代码: <nav id="main_nav"> <a class="button_horizontal" href="index.ejs">HOME</a> <a class="button_horizontal" href="about.ejs">
<nav id="main_nav">
<a class="button_horizontal" href="index.ejs">HOME</a>
<a class="button_horizontal" href="about.ejs">ABOUT</a>
<a class="button_horizontal" href="portfolio.ejs">PORTFOLIO</a>
<a class="button_horizontal" href="events.ejs">EVENTS</a>
</nav>
和我的文件结构:
views/
index.ejs
about.ejs
portfolio.ejs
events.ejs
public/
css/
images/
js/
routes/
index.js
users.js
如果有人能发现我遗漏了什么,我将非常感激,因为我似乎找不到任何使用多个网页的教程 它不起作用,因为在
中,您指向的是index.ejs
页面,而不是node.js应用程序的任何路由
相反,你应该
<a class="button_horizontal" href="/">HOME</a>
<a class="button_horizontal" href="/about">ABOUT</a>
<a class="button_horizontal" href="/portfolio">PORTFOLIO</a>
<a class="button_horizontal" href="/events">EVENTS</a>
如果您有任何疑问,请告诉我。您可能还需要从链接中删除ejs扩展。不过我不确定。(编辑:和你一样,抱歉太快了)我不是把它删除了吗?我应该在几个小时前读这篇文章的。谢谢@MukeshSharmaI我认为标签中有问题。您不应该在
href
中使用.ejs扩展名,因为我们不是直接渲染.ejs文件,节点js必须根据路由进行渲染。因此,您需要提到“/”或“/关于”。
<a class="button_horizontal" href="/">HOME</a>
<a class="button_horizontal" href="/about">ABOUT</a>
<a class="button_horizontal" href="/portfolio">PORTFOLIO</a>
<a class="button_horizontal" href="/events">EVENTS</a>
app.get('/', function(req, res) {
res.render('index', { });
});
app.get('/about', function(req, res) {
res.render('about', { });
});
app.get('/portfolio', function(req, res) {
res.render('portfolio', { });
});
app.get('/events', function(req, res) {
res.render('events', { });
});