我正在使用AngularJS路由,并且我使用了许多技巧,但是'#'标志总是以URL形式出现。
请参阅我使用的示例/代码,但不是从URL中删除#符号。
angular.module('mod', []).
config(['$routeProvider', '**$locationProvider'**,
function($routeProvider, **$locationProvider**) {
$routeProvider.
when('/first', {
templateUrl: 'first.html',
controller: 'firstCtrl'
});
$locationProvider.html5Mode(true);
}]);
有人有解决方案吗?请分享。
答案 0 :(得分:2)
你可以做任何事情
您需要使用a指定应用程序的基本URL 如果您的应用程序的根目录与URL不同(例如/ my-app,则使用它作为基础)。
<head>
<meta charset="utf-8">
<base href="">
</head>
或者您可以配置
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
答案 1 :(得分:1)
我想出了同样的问题,并在Docs上找到了解决方案。
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
和
<head>
<base href="/">
...
</head>
如果您将$ location配置为使用html5Mode(history.pushState),那么 需要使用a指定应用程序的基本URL 标记或配置$ locationProvider以不需要基本标记 使用requireBase:false传递定义对象 $ locationProvider.html5Mode():
我们做错了函数调用。试试这个,它会工作。你也可以check the docs。