[英]$locationProvider.html5Mode(true) not working with tomcat
我正在嘗試從我的 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 模塊 (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
});
}
}
]);
...
...
我已經在index.html
的 head 標簽中添加了base href="/"
標簽。
我不確定我是否必須在 tomcat 端做一些更改才能使其正常工作,或者還有其他一些問題..
請幫忙。
謝謝
myAngularApp.config([ '$routeProvider', '$locationProvider', function($routeProvider, $routeParams, $locationProvider) {
應該
myAngularApp.config([ '$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.