Javascript 从旧的非HTML5模式路由重定向到角模式下的新HTML5模式路由
我想切换我的Angular应用程序以使用HTML5模式路由。但我还想将请求重定向到旧路由到新路由。当我尝试这个时,它不起作用。以下是我所拥有的:Javascript 从旧的非HTML5模式路由重定向到角模式下的新HTML5模式路由,javascript,angularjs,Javascript,Angularjs,我想切换我的Angular应用程序以使用HTML5模式路由。但我还想将请求重定向到旧路由到新路由。当我尝试这个时,它不起作用。以下是我所拥有的: $routeProvider .when('/foo/browse', { templateUrl: '/app/foo-browse.html', controller: 'BrowseFoos' }) .when('/foo/#/browse', { redirectTo: '
$routeProvider
.when('/foo/browse', {
templateUrl: '/app/foo-browse.html',
controller: 'BrowseFoos'
})
.when('/foo/#/browse', {
redirectTo: '/foo/browse'
});
$locationProvider.html5Mode(true);
但是当我像这样在浏览器中输入url时http://localhost/foo/#/browse它被编码,但没有正确重定向(在浏览器的url栏中看起来像这样:http://localhost/foo/#%2Fbrowse
)
我能做些什么来解决这个问题吗?我最后添加了一个快速而肮脏的js重定向,并结束了这一天。我把它放在我的html>头标签中:
<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>
(函数redirectoldcriptyhashbasedurls(){
"严格使用",;
var href=window.location.href;
如果(href.indexOf('/myapp/#/')!=-1){
href=href.replace(“/my-app/#/”,“/my-app/”);
window.location=href;
}
})();
我最后添加了一个又快又脏的js重定向并结束了它。我把它放在我的html>头标签中:
<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>
(函数redirectoldcriptyhashbasedurls(){
"严格使用",;
var href=window.location.href;
如果(href.indexOf('/myapp/#/')!=-1){
href=href.replace(“/my-app/#/”,“/my-app/”);
window.location=href;
}
})();
您是否启用了html5路由@程序员是的,我最近启用了它,现在我想仍然支持指向我的哈希链接的旧链接。你有启用html5路由吗@程序员是的,我最近启用了它,现在我希望仍然支持指向我的散列链接的旧链接。