我想删除"#"来自我的Angular JS应用程序的URL。它目前部署在我的位置计算机上的tomcat服务器上,可通过自定义端口访问,如:8081。
我查看了各种文章以及stackoverflow上的不同线程来解决问题。但一切都徒劳无功。
当我尝试使用localhost:8081/myAngularApp
访问我的应用的主页时,我收到以下错误(来自浏览器的开发者控制台)。
Uncaught Error: [$injector:modulerr] Failed to instantiate module myAngularApp due to:
TypeError: Cannot read property 'html5Mode' of undefined
at http://localhost:8081/myAngularApp/js/angularMyApp.js:34:31
.....
.....
如果我删除$locationProvider.html5Mode({...});
,那么我可以使用http://localhost:8081/myAngularApp/#/
以下是我的JS文件中的片段,用于配置Angular Module(myAppMain.js):
...
...
myAngularApp.config([ '$routeProvider', '$locationProvider',
function($routeProvider, $routeParams, $locationProvider) {
$routeProvider
// route for the login page
.when('/login', {
templateUrl : 'pages/login.html',
controller : 'loginController'
})
// route for the dashboard page
.when('/dashboard', {
templateUrl : 'pages/dashboard.html',
controller : 'dashboardController'
});
// route for the FAQ page
.when('/faq', {
templateUrl : 'pages/faq.html',
controller : 'faqController'
})
// route for the About us page
.when('/aboutUs', {
templateUrl : 'pages/aboutUs.html',
controller : 'aboutUsController'
});
.otherwise({redirectTo: '/'
});
if(window.history && window.history.pushState){
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
}
}
]);
...
...
我已在base href="/"
的主标记中添加了index.html
标记。
我不确定是否必须在tomcat端进行一些更改以使其正常工作或存在其他问题..
请帮忙。
由于
答案 0 :(得分:1)
myAngularApp.config([ '$routeProvider', '$locationProvider', function($routeProvider, $routeParams, $locationProvider) {
应该是
myAngularApp.config([ '$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {