2013-06-19 153 views
1

如果我不使用html5mode,一切工作正常。但是,當我激活它,我不斷收到每個請求404錯誤。angularjs html5mode不工作

下面是相關代碼:

$urlRouterProvider.otherwise('/404'); 
$locationProvider.html5Mode(true); 

    $stateProvider 
     .state('404', { 
      url: '/404', 
      views: { 
       '': { 
        templateUrl: '404.html' 
       } 
      } 
     }); 

我用的是UI路由狀態提供:

$stateProvider.state('mandates', { 
      url: '/domiciliations/mandats', 
      views: { 
       '': { 
        templateUrl: 'directDebit/views/mandates.html', 
        controller: 'mandates.ctrl', 
       }, 
       'menu-action': { 
        templateUrl: 'directDebit/views/menu/menu.mandates.html', 
        controller: 'menu.mandates.ctrl' 
       } 
      } 
     }) 

所以,如果我嘗試訪問MYDOMAIN /應用/ domiciliations/mandats,我得到一個404.如果我不使用html5模式,那麼請求mydomain/app /#/ domiciliations/mandats。

任何想法我應該改變?

回答

3

您需要確保您的服務器已設置爲將所有請求重定向到您的索引/應用程序。你在運行什麼服務器?

+0

IIS。所以切換到html5模式是不夠的,對吧?在上面的例子中重定向看起來像什麼? – Sam

+0

正確。你需要修改你的web.config來重定向你。 –

+0

http://www.iis.net/downloads/microsoft/url-rewrite –