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

回到顶部