Как отключить перенаправление #hashbang в IE8 и IE9 в angularjs

У меня есть приложение angularjs (v 1.2.19), которое состоит из двух отдельных html-страниц (или на самом деле это два отдельных приложения angularjs в одной папке):

  • index.html
  • edit.html

У меня есть некоторые известные проблемы совместимости в IE 8 и 9 (оба не поддерживают API истории html5). Мой конфиг содержит: $locationProvider.html5Mode(true).hashPrefix('!');

У меня нет маршрутизации в приложении - index.html и edit.html можно рассматривать как отдельные приложения angularjs, которые имеют отдельную инициализацию angularjs и т. д.

Проблема выглядит так: Всякий раз, когда я открываю ссылку: http://server/app или http://server/app/index.html, все работает нормально.

Всякий раз, когда я открываю ссылку: http://server/app/edit.html из ng-click или прямо в браузере, страница автоматически перенаправляется на http://server/#!app/edit.html

Как я могу отключить перенаправление «hashbang»? Edit.html не является частью index.html, поэтому его следует загружать напрямую без какого-либо перенаправления index.html и «хеш-маршрутизации».

Я попробовал код, расположенный ниже, но он приводит к бесконечному циклу перенаправлений...

<!--[if lt IE 10]>
    <script>   
        window.location = window.location.href.replace( /#.*/, "");
    </script>
<![endif]-->

Любая помощь приветствуется.


person tom.bujok    schedule 17.07.2014    source источник
comment
Возможно, его нужно настроить на стороне сервера (переписать в режиме html5). В проекте ui-router есть запись FAQ, см. github.com/angular-ui/ui-router/wiki/ Надеюсь, это поможет.   -  person Michal Ostruszka    schedule 17.07.2014
comment
Спасибо за подсказку. Я не понимаю, однако, что я должен переписать на что. В конце концов проблема сводится к тому, что у меня есть угловое приложение, которого нет в index.html. Всякий раз, когда я пытаюсь открыть эту ссылку в браузере IE8/IE9, ссылки переписываются angular и добавляется #. Какой должна быть ссылка, которую я должен переписать, используя Apache2 и т. д.?   -  person tom.bujok    schedule 17.07.2014
comment
comment
Как насчет создания директивы, которая гарантирует, что произойдет полное перенаправление окна? Это может быть атрибут, который вы добавляете к тегу ‹a›, который отслеживает клики и переводит window.location в this.href?   -  person sergiocruz    schedule 16.01.2015


Ответы (1)


Попробуйте отключить html5mode $locationProvider.html5Mode(false).hashPrefix('!'); или полностью удалить эту строку.

person dnemoga    schedule 20.01.2015