Javascript AngularJS-如何让服务器端和客户端路由协同工作

Javascript AngularJS-如何让服务器端和客户端路由协同工作,javascript,node.js,angularjs,routes,locomotivejs,Javascript,Node.js,Angularjs,Routes,Locomotivejs,我正在将一个项目移植到一个基于angular的水疗中心。它目前是一个更为“传统”的node/MotorveJS应用程序,从服务器端提供模板(这一术语永远不正确) 项目太大,无法一次全部迁移,因此我们一次将其转换为一个页面 我的问题是:如果你加载应用程序的角度部分,一切正常。可以正确地转到角度路线。但是,如果随后转到非角度路由(应该在服务器端处理),则不会加载任何内容(ng视图变为空白,而不是加载一个全新的模板)。如果首先转到服务器端路由或点击刷新,则页面将正确加载 我的猜测是angular正在尝

我正在将一个项目移植到一个基于angular的水疗中心。它目前是一个更为“传统”的node/MotorveJS应用程序,从服务器端提供模板(这一术语永远不正确)

项目太大,无法一次全部迁移,因此我们一次将其转换为一个页面

我的问题是:如果你加载应用程序的角度部分,一切正常。可以正确地转到角度路线。但是,如果随后转到非角度路由(应该在服务器端处理),则不会加载任何内容(ng视图变为空白,而不是加载一个全新的模板)。如果首先转到服务器端路由或点击刷新,则页面将正确加载

我的猜测是angular正在尝试处理这些路由,我不确定如何让它让服务器重新接管

app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
  $locationProvider.html5Mode(true);
  $routeProvider.when('/something/page1', {
    templateUrl: '/page1.html',
    controller: 'page1Ctrl'
  });
  $routeProvider.when('/something/page1/subpage', {
    templateUrl: '/subpage.html',
    controller: 'subpageCtrl'
  });
}]);
这是我的角度路径记录器。未指定“其他”。服务器端我有一些类似于:

this.match( '/someOtherPage', 'someOtherPage#showstuff');

如果我直接转到/someOtherPage,它将从服务器端正确加载。如果我转到/something/page1,然后转到/sometherpage,它似乎不会与服务器联系。

因为您使用的是angular html 5模式,angular无法区分希望angular处理的路由和不希望处理的路由。我想你需要告诉angular忽略某些路线。看起来这就是你要找的:

因此,将链接更改为非角度页面,以使用
目标


例如,如何导航到SomeOther页面?这是一个
标记吗?这篇文章的“Html链接重写”部分可能会有帮助。听起来好像它可以解决问题,但我一直无法让它正常工作(我会再处理一些,但如果有更多的参考,将不胜感激)