AngularJs,NodeJs路由问题

我的应用程序基于NodeJs和AngularJs SPA。 我遇到了路由问题。 该应用程序是复杂的。 为了更容易解释这个问题,我创build了一个简单的待办事项应用程序。

节点服务器代码(server.js)

var express = require('express'), path = require('path'), publicPath = path.normalize(__dirname + '/public'), Todos = require('./Todo'); var app = express(); app.configure(function() { app.use(express.logger('dev')); app.use(express.cookieParser()); app.use(express.bodyParser()); app.use(express.session({secret: 'This is Top secret'})); app.use(express.static(publicPath)); }); app.get('/api/Todos',Todos.getTodos); app.get('/api/Todos/:id',Todos.getById); app.put('/api/Todos/:id', Todos.update); app.post('/api/Todos/:id', Todos.create); app.delete('/api/Todos/:id', Todos.delete); app.all('/api/*', function(req, res) { res.send(404); }); app.get('*', function(req, res) { res.sendfile(publicPath+'/index.html'); }); app.listen(3000); console.log('Listening on port 3000'); 

AngularJs路由相关代码(app.js)

 angular.module('app', ['ngRoute']); angular.module('app').config(function($routeProvider, $locationProvider) { $routeProvider .when('/', { templateUrl: 'views/home.html', controller: 'HomeCtrl'}) .when('/Todos', { templateUrl: 'views/todo.list.html', controller: 'TodoListCtrl' }) .when('/Todos/Edit/:id', { templateUrl: 'views/todo.edit.html', controller: 'TodoEditCtrl' }) .otherwise({ redirectTo: '/' }); $locationProvider.html5Mode(true); }); 

在这个/ Todos路由工作,但/ Todos /编辑/:ID路由不起作用。 如果我通过href / ng-href导航到该路由,则浏览器挂起,然后崩溃。

我无能为力 请引导我。 提前致谢。