0

我完全不知道为什么会发生这种情况,而且似乎无法在任何地方找到答案。基本上,我的“/”请求永远不会到达我的 node.js 服务器(使用 express),而是自动发送我的 index.html 文件。当我创建 Angular 2 项目时,我专门关闭了路由,因为我不需要它。所以路线根本不应该被角度看到,是吗?

路由.js

app.get('/', function(req, res) {
    console.log("to index: " + req.user);
    if(req.user){
        res.sendfile("../../dist/WebAppAngular/index.html");
    } else {
        res.redirect('/login');
    }
});
app.get('/login', function(req, res) {
    res.sendfile("../../dist/WebAppAngular/login.html");
});

索引.html

<!doctype html>
<link rel="stylesheet" href="static/css/bootstrap.min.css">
<script src="static/js/jquery-3.3.1.min.js"></script>
<script src="static/js/popper.min.js"></script>
<script src="static/js/bootstrap.min.js"></script>
<script src="static/js/Chart.min.js"></script>
<script src="static/js/all.js"></script>
<link rel="stylesheet" href="static/css/flags.css">
<link rel="stylesheet" href="static/css/all.css">
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>WebAppAngular</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>

当我向“/”发出请求时,它永远不会到达打印语句,而只是发送索引页。即使我注释掉 app.get('/'...) 下的所有内容,它仍然会发送登录页面。所以 Angular 是发送它的人,而不是服务器。我使用 Fiddler 查看了我的请求,'/' 返回 '200 OK' 并且没有重定向到 '/login'。但是,如果我直接进入“/login”,则请求会通过表达。

我是 Angular 的新手,我找不到任何会发生这种情况的原因。我根本没有使用 Angular 的路由模块。我尝试摆脱<base href="/">并将 href 更改为其他内容,但也没有做任何事情。

感谢任何人的帮助!如果需要,我可以编辑更多文件。我很困惑,请帮助。

4

0 回答 0