以下信息来自:
https://scotch.io/quick-tips/pretty-urls-in-angularjs-removing-the-hashtag
在Angular中,获取干净的URL并从URL中删除标签是非常容易的。
默认情况下,AngularJS会使用标签路由url
例如:
http://www.example.com
http://www.example.com/#/about
http://www.example.com/#/contact
有两件事需要做。
配置locationProvider美元
为相对链接设置基础
美元的位置服务
在Angular中,$location服务会解析地址栏中的URL,并对应用程序进行更改,反之亦然。
我强烈建议大家通读Angular $location的官方文档,了解一下位置服务和它提供的功能。
https://docs.angularjs.org/api/ng/service/美元位置
$locationProvider和html5Mode
We will use the $locationProvider module and set html5Mode to true.
We will do this when defining your Angular application and
configuring your routes.
angular.module('noHash', [])
.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl : 'partials/home.html',
controller : mainController
})
.when('/about', {
templateUrl : 'partials/about.html',
controller : mainController
})
.when('/contact', {
templateUrl : 'partials/contact.html',
controller : mainController
});
// use the HTML5 History API
$locationProvider.html5Mode(true); });
什么是HTML5 History API?它是一种使用脚本操作浏览器历史记录的标准化方法。这使得Angular可以在不刷新页面的情况下更改页面的路由和url。关于这方面的更多信息,这里有一篇不错的HTML5 History API文章:
http://diveintohtml5.info/history.html
相对链接设置
要使用相对链接来链接应用程序,您将需要
在文档的<head>中设置<base>。这可能是
找到<base>标签,然后
将它设置为应用程序的根URL。
例如:<base href="/">
还有很多其他的方式来配置它,HTML5模式
设置为true将自动解析相对链接。如果你的根
与url(例如/my-base,
然后把它作为你的基础。
旧浏览器的回退
$location服务将自动回退到hashbang
方法,用于不支持HTML5 History API的浏览器。
这对您来说是透明的,您不需要配置
只要能起作用,什么都可以。在Angular的$location文档中,你可以看到
备用方法及其工作原理。
总之
这是一个简单的方法来获得漂亮的url和删除标签
你的Angular应用。做得超级干净超级好吃吗
快速的Angular应用!