使用AngularJS和Express进行路由

时间:2017-12-26 02:29:05

标签: angularjs express routing

我试图在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)

我该如何解决?

2 个答案:

答案 0 :(得分:0)

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

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

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

然后,当您转到http://yourservername/#/profile时,您将获得个人资料视图。

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

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

</head>

答案 1 :(得分:0)

.config([&#39; $ locationProvider&#39;,&#39; $ routeProvider&#39;,&#39; $ provide&#39;,function($ locationProvider,$ routeProvider){

x = tf.placeholder(tf.float32, [None, 1024])
y = keras.layers.Dense(512, activation='relu')(x)

$ locationProvider.html5Mode(真)   $ locationProvider.hashPrefix(&#39;!&#39)

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

而不是:

.config([&#39; $ locationProvider&#39;,&#39; $ routeProvider&#39;,&#39; $ provide&#39;,function($ locationProvider,$ routeProvider){

$ locationProvider.html5Mode(真)   $ locationProvider.hashPrefix(&#39;!&#39)

}])