2016-08-15 20 views
0

私はこのコードで助けを求めます。AngularJSそれ以外の場合は動作しません

app.config(function ($locationProvider, $routeProvider) { 

    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 
    $routeProvider 
     .when("/", { 
     templateUrl: "views/home.html", 
     controller: "HomeController" 
    }).when("/login", { 
     templateUrl: "/views/login.html", 
     controller: "LoginController" 
    }).when("/register", { 
     templateUrl: "/views/register.html", 
     controller: "RegisterController" 
    }).when("/users", { 
     templateUrl: "/views/admin/users.html", 
     controller: "UserController", 
     requiresAuth : true 
    }).otherwise({ 
     redirectTo: "/" 
    }); 
}).run(function($rootScope, Session) { 
    $rootScope.$on("$routeChangeStart", function(event, next, current) { 
    if (next.requiresAuth && !Session.getIsAdmin()) { 
     alert("You are not authorized"); 

     event.preventDefault(); 
    } 
    }); 
}); 

私は、存在しないアドレスに行くとき、それはERRを示しています。

Error: No default engine was specified and no extension was provided. 

ので、それ以外のparam doesnの `tの仕事、なぜいけないのでしょうか?

答えて

2

このエラーは、角度からではなくサーバーからのものです。この "存在しない"アドレス(存在するすべてのものについても、BTW。Understanding what it takes to remove the hash # from angular routesを読んでください)のindex.htmlページを提供するようにサーバーを設定する必要があります。

HTMLページがなく、アプリケーションがまったくない場合、Angularは何もできません。 index.htmlがサーバからロードされると、角度アプリケーションが起動し、URLが何であるかを調べ、それがどのルートにも一致しないことを検出してから、ホームページにリダイレクトします。

+0

はい、もちろんです。愚かな間違い。全て大丈夫。ありがとうございました – Kuba

関連する問題