默认情况下,AngularJS将使用#来路由URL。
例如:
http://example.com/
http://example.com/#/about
http://example.com/#/contact
很容易获得一个干净的网址,并从网址中删除井号。
就完成两件事。
配置$locationProvider来设置我们的相对连接$location服务的起点路径
在Angular中,$location服务解析地址栏中的URL,并对应用程序进行更改,反之亦然。
我强烈建议通读官方的Angular $定位文档,以了解$定位服务及其功能。
$locationProvider和html5模式(html5 mode)
我们将使用$locationProvider模块并将html5Mode设置为true。
当您定义Angular应用程序并配置路由时,我们将执行此操作。
angular . module(' scotch ',[])。config(函数($routeProvider,$ location provider){ $ routeProvider。when('/',{ TemplateURl : ' partials/home . html ',controller : mainController })。when('/about ',{ TemplateURl : ' partials/about . html ',controller : mainController })。when('/contact ',{ template URL : ' partials/contact . html ',controller : main controller });//使用html 5 History API $ location provider . html 5 mode(true);});什么是HTML5历史API?使用脚本操作浏览器历史记录是一种标准方法。有了它,Angular可以在不刷新页面的情况下更改页面的路线和URL。有关更多信息,这里有一篇很好的HTML5历史API文章。
为相对链接设置基础
要在整个应用程序中使用相对链接,您需要在文档的头部设置一个集合。
!doctype html head metachar set=' utf-8 ' base href='/'/head,配置这个东西的方法有很多,将HTML5Mode设置为true会自动解析相对链接。这种方式总是在我的地方奏效。如果你的应用程序的根不同于url,比如/my-base,那么就用它作为你的起始路径。
旧浏览器回调
对于不支持HTML5浏览历史API的浏览器,$location服务将自动回调hashbang方法。
一切对你来说都是透明的,所以你不需要为它做任何配置。从Angular $location文档中,您可以看到回调方法是如何工作的。
摘要
这是在Angular应用程序中获取漂亮URL和删除散列标记的简单方法。享受超清洁、超快速的Angular应用!