我正在尝试将HTML5模式添加到我的角应用中以删除"#"符号。 问题是它不起作用。我的整个视图都不会显示!这是我的代码:
var app = angular.module('app', [
'ngRoute',
... ]);
app.config(['$routeProvider, $locationProvider',
function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.
when('/', {
templateUrl: 'partials/main.html'
}).
when('/raw-communication', {
templateUrl: 'partials/raw-communication.html',
controller: 'RawCommunicationCtrl'
}).
otherwise({
redirectTo: "/404"
});
}
]);
我使用的网址是localhost:8080。值得一提的是,当我删除html5Mode的代码时,一切正常。
当我的意思是它不起作用时,我的意思是没有任何东西出现在整个ng-view指令上。例如,如果我有这个:
<!doctype html>
<html lang="en" ng-app="app">
<head>
<base href="/"/>
<meta charset="UTF-8">
<title>Stock App</title>
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-route/angular-route.min.js"></script>
<script src="js/app.js"></script>
...
</head>
<body>
<h1>Stock App</h1>
<div ng-view></div>
</body>
</html>
仅显示h1标签。要显示的内容部分来自&#34; partials / main.html&#34;。
访问localhost:8080时URL未更改,但访问localhost时发生404错误:8080 / raw-trades。
我在控制台中出现以下错误:
未捕捉错误:[$ injector:modulerr] http://errors.angularjs.org/1.3.13/ $ injector / modulerr?p0 = app&amp; p1 =错误%3A%20 ... Flocalhost%3A8080%2Fbower_components%2Fangular%2Fangular.min.js%3A38% 3A135)
我的网络标签中没有发生其他404错误。
更新3:
这不重复,因为主页应该仍然有效。
更新
我已经缩小了我的问题;以下作品:
app.config(['$routeProvider',
function($routeProvider) {
...
}
]);
但这不是:
app.config(['$routeProvider, $locationProvider',
function($routeProvider, $locationProvider) {
...
}
]);
无论我是否实际使用$locationProvider
。
NEW UPDATE
这意味着
app.config(['$routeProvider', '$locationProvider',
不是
app.config(['$routeProvider, $locationProvider',
浪费了一个小时!