使用Angular中的ngRoute和NodeJS服务器提供文件

时间:2017-12-05 22:47:15

标签: angularjs node.js express url-routing ngroute

我正在尝试使用Angular Router和NodeJS服务器运行AngularJS。我不打算在Node中提供各种视图,而是想使用角度路由器。第一页正确提供,没有错误,但当我尝试单击另一个链接时,浏览器显示以下内容 error code。下面是服务器脚本,路由脚本以及HTML中链接的相关代码。

HTML链接

<li><a href="./add">Add Workout</a></li>

Server.js

app.get('/', function(req, res) {
   res.sendFile(path.join(__dirname + '/public/app/views/home.html'));
});

app.use(express.static('public'));

App.js

var app = angular.module("fitness2Uapp", ["ngRoute"]);
app.config(function($routeProvider) {
    $routeProvider
      .when("/", {
          templateUrl : "./app/views/home.html"
      })
      .when("/browse", {
          templateUrl : "./app/views/browse.html"
      })
      .when("/add", {
          templateUrl : "./add.html"
      })
      .when("/workout", {
          templateUrl : "./app/views/workout.html"
      });
  });

1 个答案:

答案 0 :(得分:0)

尝试放入一个只能重定向回主页的“全部捕获”路径。这将允许角度路由机制启动。现在问题是它正在尝试在节点服务器上找到“/ add”的端点路径,但没有找到任何内容。这应该是您服务器上建立的 最后 路由。

我个人使用AngularJS并且必须这样做,一切都很好。不确定这是否也会像Angular2 +

一样运行
// Catch all if all other routes fail to match.
app.get('*', (req, res) => {
  res.sendFile(path.resolve(`${__dirname}/path/to/home.html`));
});