AngularJS路由,没有散列’#’

前端之家收集整理的这篇文章主要介绍了AngularJS路由,没有散列’#’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习AngularJS,有一件事真的让我很恼火。

我使用$ routeProvider声明我的应用程序的路由规则:

$routeProvider.when('/test',{
  controller: TestCtrl,templateUrl: 'views/test.html'
})
.otherwise({ redirectTo: '/test' });

但是当我在浏览器中导航到我的应用程序时,我看到app /#/ test而不是app / test。

所以我的问题是为什么AngularJS添加这个哈希#到urls?有没有可能避免呢?

事实上,你需要#(hashtag)非HTML5浏览器。

否则,它们将仅仅通过所提到的href对服务器进行HTTP调用
#是一个旧的浏览器短路,它不会触发请求,这允许许多js框架构建自己的客户端重新路由。

您可以使用$ locationProvider.html5Mode(true)来告诉angular如何使用HTML5策略(如果有的话)。

这里支持HTML5的浏览器列表:http://caniuse.com/#feat=history

猜你在找的Angularjs相关文章