我已经使用Node&Express设置了一个服务器。除GET /外,所有路线都有效。它不是显示我发送的文件,而是始终显示index.html(也在公共文件夹中)。如果我将index.html重命名为其他内容或删除它,我的GET /路由确实有效。
const publicPath = path.join(__dirname, '../public');
app.use(express.static(publicPath));
app.get('/', (req, res) => {
res.sendFile(publicPath + '/login-register.html');
});
有没有办法抑制index.html的自动渲染?
编辑:可能有用的注意我没有错误,无论是在我的控制台还是Chrome开发工具。
发生这种情况是因为static
中间件与/
路由匹配,因为您在目录中有一个index.html
文件并将该文件发送到浏览器。第二个中间件函数永远不会运行,因为/
路由已经匹配。如果切换中间件函数声明的顺序,它应该按照您期望的方式工作。
app.get('/', (req, res) => {
res.sendFile(publicPath + '/login-register.html');
});
app.use(express.static(publicPath));