JavaScript没有hash'#'的AngularJS路由
我正在学习AngularJS,有一件事让我很烦。
我用来$routeProvider
为我的应用程序声明路由规则:
$routeProvider.when('/test', { controller: TestCtrl,
templateUrl: 'views/test.html'
})
.otherwise({ redirectTo: '/test' });
但是当我在浏览器中导航到我的应用程序时,我看到的app/#/test
不是app/test
。
所以我的问题是为什么AngularJS将此hash添加#
到url中?有可能避免它吗?
回答:
实际上,对于非HTML5浏览器,您需要#(#标签)。
否则,他们将只通过提到的href对服务器进行HTTP调用。#是一个旧的浏览器短路问题,它不会触发请求,它允许许多js框架在此之上构建自己的客户端重新路由。
您可以$locationProvider.html5Mode(true)
用来告诉angular使用HTML5策略(如果有)。
以上是 JavaScript没有hash'#'的AngularJS路由 的全部内容, 来源链接: utcz.com/qa/408799.html