2017-03-26 51 views
1

我想将我的Angular应用切换为使用html5Mode路由。但我也想将请求重定向到我的旧路由到我的新路由。当我尝试这个时,它不起作用。下面是我有:将旧的非html5Mode路由重定向到Angular中的新html5Mode路由

$routeProvider 
    .when('/foo/browse', { 
     templateUrl: '/app/foo-browse.html', 
     controller: 'BrowseFoos' 
    }) 
    .when('/foo/#/browse', { 
     redirectTo: '/foo/browse' 
    }); 

$locationProvider.html5Mode(true); 

但是,当我在浏览器输入网址这样http://localhost/foo/#/browse它被编码并不能正确重定向(看起来像这样在浏览器的地址栏:http://localhost/foo/#%2Fbrowse

有什么特殊的,我可以做什么来解决这个问题?

+0

你有html5路由启用吗? @programmer – Yaser

+0

是的,我最近启用它,现在我想仍然支持那些指向我的哈希链接的旧链接。 – programmer

回答

0

我最终添加了一个快速和肮脏的JS重定向并称它为一天。我把它放在我的html> head标签中:

<script>  
(function redirectOldCrustyHashBasedUrls() { 
    'use strict'; 
    var href = window.location.href; 
    if(href.indexOf('/my-app/#/') !== -1){ 
     href = href.replace('/my-app/#/', '/my-app/'); 
     window.location = href; 
    } 
})(); 
</script> 
相关问题