2016-11-11 48 views
3

我目前正試圖通過實現_escaped_fragment_-scheme(Google Docs)來製作角度應用程序索引。我意識到它已被棄用的事實,但據我所知,在一些研究和實驗後,它仍然是最安全的選擇。用於角度路由的右側哈希前綴

該方案要求hashbang #!作爲分隔符爲 '真正的URI' 和URI的角路由部分,即

http://www.someuri.com/#!/dashboard

目前我使用默認的#:

http://www.someuri.com/#/dashboard

我知道如何更改路由以使用'#!':

angular.module('myApp').config([ 
    '$locationProvider', 
    function($locationProvider) { 
     $locationProvider.hashPrefix('!'); 
    } 
]); 

但是,這顯然打破了「舊」鏈接(如http://www.someuri.com/#/dashboard)。

如何正確路由兩種URI格式?

我曾嘗試配置路由是這樣的:

app.config(function($urlRouterProvider) { 
     $urlRouterProvider 
      .when('!/imprint', '/imprint') 
      .when('!/blog', '/blog') 
      .when('!/blog/{blogPostId}', '/blog/{blogPostId}'); 
    }); 

,但它不能正常工作,無論是我可以定義一個感嘆號作爲路由的URI的第一個字符的狀態。

回答

0

你必須刪除!從$locationProvider.hashPrefix('!');$locationProvider.hashPrefix('');並且加上$locationProvider.html5Mode(true); 並且在頭部分的索引頁<base href"/"/>