Angular应用程序始终重定向到默认值

时间:2015-04-06 17:19:51

标签: ruby-on-rails angularjs gulp route-provider

我正在构建一个新的Rails API / Angular应用程序。我有两个基本页面,一个是Gulp生成的默认页面。我在这些重定向上有点迷失。

如果我输入:

http://localhost:9000/main

浏览器会在此地址重定向主页面(请注意哈希值):

http://localhost:9000/#/main

当我输入:

http://localhost:9000/sentences

然后浏览器也会重定向主页面,并在浏览器中显示该地址:

http://localhost:9000/sentences#/main

'use strict';

angular.module('myapp', ['ngAnimate', 'ngCookies', 'ngTouch', 'ngSanitize', 'ngRoute', 'ui.bootstrap'])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/main', {
        templateUrl: 'app/main/main.html',
        controller: 'MainCtrl'
      })
      .when('/sentences', {
         templateUrl: 'app/sentences/sentences.html',
         controller: 'SentencesCtrl'
      })
     .otherwise({
        redirectTo: '/main'
      });  
  })
;

1 个答案:

答案 0 :(得分:0)

添加$ locationProvider并将html5Mode设置为true,无法确定原因。

'use strict';

angular.module('myapp', ['ngAnimate', 'ngCookies', 'ngTouch', 'ngSanitize', 'ngRoute', 'ui.bootstrap'])
  .config(function ($routeProvider,$locationProvider) {
     $locationProvider.html5Mode(true);
    $routeProvider
      .when('/main', {
        templateUrl: 'app/main/main.html',
        controller: 'MainCtrl'
      })
      .when('/sentences', {
         templateUrl: 'app/sentences/sentences.html',
         controller: 'SentencesCtrl'
      })
     .otherwise({
        redirectTo: '/main'
      });  
  }) 
;

我还需要在index.html

中添加基本标签
    <base href="/">