0

こんなルーターもあるよ

app.config(function($routeProvider, $httpProvider){
    $routeProvider
        .when('/', {
             redirectTo: function(){
              return '/mdp';
             }
         })
         .when('/mdp', {
             templateUrl: 'views/mdp/dashboard.html'
         })
         .when('/mdg', {
             templateUrl: 'views/mdg/dashboard.html'
         })
         .otherwise({
             templateUrl: '/views/error/404.html'
         });
});

それはかなりうまくいきますが、私がオンになっているとき、私IE8は奇妙なバグを抱えています!

ブラウザのナビゲーション バーに URL : localhost:9000 を設定すると、次の場所にIE8リダイレクトしても問題ありません。

localhost:9000/#/mdp

しかし、ナビゲーションバーのURLを変更して設定した後:

localhost:9000/#/mdg 

キーボードの Enter キーを押しても何も起こらず、 を打たなければなりませんCTRL+F5

本当にわからない

4

1 に答える 1

0

ハッシュタグがないと、ブラウザはサーバーに対して通常の HTTP GET リクエストを実行し、リクエストは明らかに何も見つけられません。localhost:9000/mdp

ハッシュタグは意図的に HTTP リクエストから除外されています。"it is used to delimit a URI from a fragment identifier in URI references" これは、ハッシュタグを利用する JavaScript ルーティングや、ページの状態を維持するために使用されるその他のロジックに役立つためです。

したがって、ハッシュタグを変更するだけで、ブラウザーがそのページに対して別のリクエストを行うことはありません。

この投稿には、役に立つかもしれない関連情報がいくつかあります: javascript location.hash refresh in IE

于 2013-09-30T16:50:44.027 に答える