我想切换我的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 :(得分: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>