2016-10-06 2 views
0

У нас есть существующее веб-приложение MVC5, использующее, по большей части, Магистральную магистральную маршрутизацию. Когда вы добираетесь до сайта, он загружает исходный основной home/index.html, который загружает все сценарии Backbone и т. Д.Смешивание Angular2, магистральной и MVC-маршрутизации

Мы вводим Angular2 (выпуск: 2.0.1) в mix и имеем новый index.html страница для углового, подаваемого от нашего NgController.

В настоящее время у нас есть приложение, использующее стратегию размещения Хэш; Как только приложение нагрузки, маршрутизация берет на себя управление URL и мы переходим от чего-то вроде:

http://blah.com/ng/#/reports 

в

http://blah.com/#/reports 

Который, как правило, хорошо, и осматриваться в угловом приложение изменит URL к/#/pageXyz и т.д. ... до тех пор пока вы не попытаться обновить или глубоко ссылку непосредственно на последних примерах, в котором браузер технически просто собирается

http://blah.com 

Который обслуживает исходную страницу индекса магистральной сети.

Каковы варианты разрешения этого вопроса?

  • Возможно ли, что Угловой маршрутизатор префикс маршрутов с помощью контроллера ng, возможно?
  • Can Backbone перенаправляет любые/#/* маршруты на ng/#/* страницы?
  • Некоторое конкретное сопоставление для маршрутов MVC, которые могут распознавать Угловой URL-адрес? (Хотя я считаю, что # не делают сокращение, когда дело доходит до URL-адресов, поэтому не могут совпадать с ними в маршрутизации?)
  • Будет ли лучше переключаться на URL-адреса HTML5? (Лучше для маршрутизации MVC?)

Ночь, Угловая сайт, кажется, получили incomplete teaser page для установки VS2015 (Примечание: мы используем VS2013 в настоящее время), а в самом низу оставляет вас на кульминации, казалось бы, связанной с к вопросу:

Примечание по маршрутизации приложениям

Если это приложение используется угловое маршрутизатор, обновление браузера может возвращать 404 - Страница не найдена. Посмотрите на адресную строку. Имеет ли он навигационный url («глубокая ссылка»)? Мы должны будем настроить сервер для возврата index.html для этих запросов. Пока мы не удалим путь навигации и снова обновим.

Заранее спасибо.

ответ

0

В конечном счете пошли с изменением маршрутизации магистрали.

Плюсы: Это работает и только две линии:

#restore angular url 
if location.pathname == '/' and location.hash.substring(0,2) == '#/' 
    location.href = location.href.replace('/#/','/ng/#/') 

Минусы: На обновления/глубокой ссылке, вы получите два полных загрузки страницы - первый в дом/индекс нагрузки позвоночника, затем в нг/индекс загрузка угловой после перенаправления.

По-прежнему, все, что считается, факт, что он вообще работает, достаточно для меня.

Смежные вопросы