1

我在 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

4

2 回答 2

1

您只能在支持 HTML5 History API 的浏览器中从 URL 中删除 Hashtag。正如您在此处看到的,IE9 不支持它,因此在这种情况下,它将回退到 Hashtags。

话虽如此,为了使您的 URL 在支持的浏览器中漂亮,您可以html5Mode使用$locationProvider如下配置启用。

  angular.module('myApp', [])  
         .config(function($locationProvider){
             $locationProvider.html5Mode(true);
         });

除此之外,您需要为 angular-router 定义应用程序的基本 URL 以识别路由。如果您的网址是

http://localhost:8080/myApp/#showLogin
http://localhost:8080/myApp/#showHomePage

那么您需要使用<base>如下标签定义基本 URL

<head>
    <base href="/myApp">
</head>

希望这可以帮助 :)

于 2015-09-24T09:34:10.607 回答
0

取自Scotch.io

$locationProvider.html5Mode(true);
于 2015-09-24T09:05:14.070 回答