簡體   English   中英

$locationProvider.html5Mode(true) 不適用於 tomcat

[英]$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM