2015-04-06 142 views
0

我正在構建一個新的Rails API/Angular應用程序。我有兩個基本頁面,一個是Gulp默認生成的頁面。我對這些重定向有點失落。Angular應用程序總是重定向到默認的

如果我輸入:

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' 
     }); 
    }) 
; 

回答

0

添加$ locationProvider和設置html5Mode到真正的作品,真的不知道爲什麼。

'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="/"> 
+0

爲什麼這需要將成爲公認的答案的任何明確的解釋。 – ardochhigh

+0

相關問題:http://stackoverflow.com/questions/28744335/unable-to-redirect-using-angular-routeprovider?rq=1和有趣的帖子:http://www.jonahdempcy.com/2014/12/29/angularjs-錯誤locationnobase-位置HTML5的模式需要基標籤的本/ – ardochhigh