从旧的非html5Mode路由重定向到Angular中的新html5Mode路由

时间:2017-03-26 20:35:17

标签: javascript angularjs

我想切换我的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

我能做些什么来解决这个问题?

1 个答案:

答案 0 :(得分: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>