此问题之前已得到解答,但可能是早期版本的Angular。我在Angular 1.6.1工作。 HTML5并没有添加#!到网址,但我的部分没有加载。
HTML:
<head>
...
<base href="localhost/test/angular/Jan102017">
...
<head>
<body>
...
<ul class="nav navbar-nav navbar-right">
<li><a href="/"><i class="fa fa-home"></i> Home</a></li>
<li><a href="/second"><i></i> Second</a></li>
</ul>
...
JavaScript的:
var myApp = angular.module('myApp', ['ngRoute']);
myApp.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
$routeProvider
.when('#/', {
templateUrl: 'pages/main.html',
controller: 'mainController'
})
.when('#/second', {
templateUrl: 'pages/second.html',
controller: 'secondController'
})
.when('#/second/:num', {
templateUrl: 'pages/second.html',
controller: 'secondController'
})
$locationProvider.html5Mode(true);
}]);
答案 0 :(得分:0)
将所有这些when('#/'
...更改为when('/'
...因为您使用html5Mode true
并且在角度1.6版本$locationProvider.hashPrefix('!');
是默认值,因此将其更改为
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('');