2014-09-20 115 views
0

我採用了棱角分明的路線以確定視圖顯示如下用戶:AngularJS與RequireJS路由刪除哈希

define(['angular', './app'], function(angular, app) { 
    'use strict'; 
    return angular.module('app', ['ngRoute']). 
    config(function($routeProvider, $locationProvider) { 
     $routeProvider 
      .when('/', { 
       templateUrl:'assets/partials/partial1.html', 
       controller: 'MyCtrl1' 
      }).when('/mada', { 
       templateUrl:'assets/partials/partial2.html', 
       controller: 'MyCtrl2' 
      }) 
      .otherwise({redirectTo: '/'}); 

    }); 

}); 

目前,路由工作,但僅是這樣的:本地主機/#/MADA或本地主機/#/ 我希望能夠看到本地主機/瑪達

我知道加入

$locationProvider.html5Mode(true); 

將擺脫哈希的。但是,這仍然不能使用戶去:localhost/mada,因爲這將返回服務器404.

這可以實現嗎?怎麼樣?

回答

1

如果你不使用服務器端語言,然後把這個代碼放在html頭。

<base href="/"> 

,如:

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

,並把這個配置塊:

$locationProvider.html5Mode(true); 

如果您正在使用服務器端語言,然後使用此代碼:

app.get('*', function(req, res) { 
    res.render('index'); 
}); 

代替的

app.get('/', function(req, res) { 
    res.render('index'); 
}); 

和並把這個代碼在配置塊:

$locationProvider.html5Mode(true);