I have an angularJS app, configured with the following:
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
So in modern browsers, it works with pushstate no problem, an example URL would be:
http://myapp.com/members
In older browsers, e.g. IE9, when I browse to that URL, it rewrites it as expected to:
http://myapp.com/members#!/members
Clicking any links from this point on uses the hashbang method, also correctly:
http://myapp.com/members#!/members/add
However...
If I full reload a page once it's on a hashbang rewritten url, it will keep appending the hash to itself. First refresh:
http://myapp.com/members#!/members#!/members#!%2Fmembers
.. and second refresh:
http://myapp.com/members#!/members#!/members#!%2Fmembers#!/members#!%2Fmembers%23!%2Fmembers%23!%2Fmembers
What is going on here that could be causing this? Usually it won't happen as people will navigate within the app and angular will handle the urls, but doing a full reload seems to break it. Thanks.