使用AngularJS和Express进行路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用AngularJS和Express进行路由相关的知识,希望对你有一定的参考价值。

我试图在Express Express旁边使用AngularJS ngRoute但是我一直收到以下错误:

无法获取/个人资料

这是我的代码:

.config(['$locationProvider', '$routeProvider', function ($locationProvider, $routeProvider) {
      $routeProvider.when('/profile', {
        templateUrl: 'views/partials/profile.html',
        controller: 'kontrola'
      })

      $locationProvider.html5Mode('true')
      $locationProvider.hashPrefix('!')



    app.get('/', routes.index)
    app.get('/login', routes.login)
    app.get('/signup', routes.signup)

我该如何解决?

答案

Angular的ngRoute用于客户端路由,而express用于服务器端路由。

您需要在服务器中设置一个处理程序来提供静态文件,如下所示(假设您的views文件夹位于static文件夹中:

app.set('views', path.join(__dirname, 'static'));

然后,当你去http://yourservername/#/profile时,你会得到你的个人资料视图。

如果你想使用html5mode,你需要有这样的标签:

<head>
   .....
    <base href="/">

</head>
另一答案

.config(['$ locationProvider','$ routeProvider','$ provide',function($ locationProvider,$ routeProvider){

  $routeProvider.when('/profile', {
    templateUrl: 'partials/pro.html',
    controller: 'kontrola'
  })

$ locationProvider.html5Mode(true)$ locationProvider.hashPrefix('!')

}])

代替:

.config(['$ locationProvider','$ routeProvider','$ provide',function($ locationProvider,$ routeProvider){

$ locationProvider.html5Mode(true)$ locationProvider.hashPrefix('!')

  $routeProvider.when('/profile', {
    templateUrl: 'partials/pro.html',
    controller: 'kontrola'
  })

以上是关于使用AngularJS和Express进行路由的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS 和 Express 路由 404

请求新页面时如何将 AngularJS 路由与 Express (Node.js) 一起使用?

使用 Express/Passport、AngularJS 和 ensureLoggedIn 的身份验证和路由在“/”url 上不起作用

为啥要使用 Express 而不是 AngularJS?

将 AngularJS html5mode 与 nodeJS 和 Express 一起使用

同时使用 Laravel 和 Angularjs 路由