我使用的是angular 1.4.6和新路由器版本0.5.3,希望从url中删除"/#"。在互联网上似乎找不到任何关于它的信息。
编辑:$locationProvider.html5mode(true);
给出以下错误:Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
TypeError: $locationProvider.html5mode is not a function
只有在支持HTML5历史API的浏览器中,才能从URL中删除Hashtag。正如您在这里看到的,它在IE9中不受支持,所以在这种情况下,它将回退到Hashtags。
话虽如此,为了在支持的浏览器中使URL美观,您可以使用$locationProvider
配置来启用html5Mode
,如下所示。
angular.module('myApp', [])
.config(function($locationProvider){
$locationProvider.html5Mode(true);
});
除此之外,您还需要为角度路由器定义应用程序的基本URL,以识别路由。如果您的URL是
http://localhost:8080/myApp/#showLogin
http://localhost:8080/myApp/#showHomePage
然后您需要使用<base>
标签来定义基本URL,如下面的
<head>
<base href="/myApp">
</head>
希望这有帮助:(
取自Scotch.io
$locationProvider.html5Mode(true);