10

次のように構成された angularJS アプリがあります。

$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');

したがって、最新のブラウザーでは、プッシュステートで問題なく動作します。URL の例は次のようになります。

http://myapp.com/members

IE9 などの古いブラウザーでは、その URL を参照すると、期待どおりに次のように書き換えられます。

http://myapp.com/members#!/members

この時点からリンクをクリックすると、hashbang メソッドが正しく使用されます。

http://myapp.com/members#!/members/add

でも...

ハッシュバンで書き換えられた URL にあるページを完全にリロードすると、それ自体にハッシュが追加され続けます。最初の更新:

http://myapp.com/members#!/members#!/members#!%2Fmembers

.. そして 2 回目の更新:

http://myapp.com/members#!/members#!/members#!%2Fmembers#!/members#!%2Fmembers%23!%2Fmembers%23!%2Fmembers

これを引き起こしている可能性のある、ここで何が起こっているのでしょうか? 通常、人々はアプリ内をナビゲートし、angular が URL を処理するため、これは発生しませんが、完全なリロードを行うと、それが壊れるようです。ありがとう。

4

2 に答える 2