我试图建立一个网页与多个html网页。
使用下面的代码,我可以链接到登录页面,但是localstores页面也可以链接到登录。
const express = require('express')
const app = express()
const port = 3000
var path = require("path");
var request = require('request');
const { get } = require('./routes/brand');
//Static files
app.use(express.static('public'))
app.use('/css', express.static(__dirname +'public/css'))
app.use('/img', express.static(__dirname +'public/img'))
app.use('/js', express.static(__dirname +'public/js'))
app.get('/',(req, res) => {
res.sendFile(path.join(__dirname +'/views/brand.html'));
})
app.route('/*').get(function(req, res) {
res.sendFile(path.join(__dirname +'/views/login.html'));
});
app.route('/*').get(function(req, res) {
res.sendFile(path.join(__dirname +'/views/localstores.html'));
});
// listen on port 3000
app.listen(port,() => console.info(`Listening on port ${port}`))
在html文件中,我将单独的按钮链接到单独的页面,如下所示:
<a href ="login.html">
SIGN IN</a></p>
</div>
<a href ='localstores.html'>LocalStores</a>
我希望有人能帮我。我对html和nodejs非常陌生。
3条答案
按热度按时间li9yvcax1#
app.route('/*').get
将对所有get请求执行,例如导航。因为您首先有login.html,所以它会返回。您可以删除这些行并将html文件中的href更新为:
alternativley您可以将其更改为:
并加上:
2vuwiymt2#
这些似乎影响着同一条路线。似乎express只使用了声明的第一个。
我的建议是试试这个,这样每个页面都有自己的路线:
368yc8dk3#
当您这样做时:
它基本上是对每个在根目录之后访问任何路由的客户机/用户进行节点化
/
运行此函数,返回login.html
佩奇那是什么/*
方法相反,请尝试指定两个页面的不同路由,如下所示:
在html中,您不需要输入文件名,只需要使用您定义的路由,express将处理向客户端发送适当的文件