2016-01-22 5 views
3

HTML5 PushState означает обновление URL или ввести прямой URL в браузере работает прекрасно, когда я запускаю мое приложение угловое с помощью 'npm start' команду VS 2015 из командной строки. Однако, когда я развертываю одно и то же приложение в IIS и меняю <base href="/"/> на <base href="/MyVirtualApplication/" />, тогда PushState HTML5 или История API не работает должным образом и повышает ошибку 404.AngularJS 2 маршрутизации

Просьба предложить.

+1

см. Http://stackoverflow.com/questions/34541532/is-angular-2s-router-broken-when-using-html5-routes – Langley

+1

Возможный дубликат [Использование разрешения в Angular2 Routes] (http: // stackoverflow.com/questions/33462532/using-resolve-in-angular2-routes) – Mike

+0

Я не думаю, что мой вопрос повторяется. Всюду упоминается о обработке запросов с использованием альтернативных способов или с использованием # методов. Я пробовал некоторые другие блоги, которые упоминают о 'npm lite server', однако я не могу получить ответ, какие изменения мне нужны, если я развертываю свое приложение на сервере IIS. Каждый раз, когда я не могу запустить 'npm lite', например. на сервере QA или этапе. – Kenz

ответ

-3

Думаю, я получил свой ответ после базового понимания узлов и использования его с помощью Angular2.

В принципе, nodejs-expressjs сам является веб-сервером, и когда мы запускаем команду npm запускает запуск веб-сервера и перечисление на определенном порту. И он не требует дополнительного сервера.

+0

У меня такая же проблема, как вы ее решили? –

+0

@DiegoUnanue, в основном угловой 2.0 запускается на узле. поэтому, когда вы запускаете свое приложение на локальном компьютере, он всегда должен работать через npm. – Kenz

+0

Проверьте [это] (https://admin-ahead.com/blog/node-js-installation-windows-2008-r2-server/) – Kenz

2

EDIT: IIS Настройка для перезаписи URL:

Вы должны установить это, чтобы сделать следующую работу: http://www.iis.net/downloads/microsoft/url-rewrite

Первый шаг:

Второй шаг:

Я нашел ссылку, которая объясняет решение: https://stackoverflow.com/posts/12614072/

OLD:

Во время работы любого приложения, построенный с угловым 2 наружной установки среды разработки с помощью npm, вы должны заменить <base href="/"> с этим:

<script>document.write('<base href="' + document.location + '" />');</script> 

Примечание: Это только для производства или в случае нехватки среды npm.

+0

Я пробовал это же. и когда я реализую это через IIS, у меня возникают проблемы. Насколько мне известно, вы пробовали как из «npm lite», так и из «IIS»? и он работает без каких-либо проблем для вас? – Kenz

+0

@ Авинаш - У меня нет ** IIS **, но я нашел решение. Проверьте редактирование на мой ответ. – Bryan

+0

Я думаю, что у меня есть трудное время с IIS и этой функцией HTML5. Я попытался точно так же упомянуть ваши комментарии, но не повезло и в верхней части этой ссылки, если вы не доступны. Либо сломанной, либо неполной. Я думаю, что на время я должен пойти с сервером npm lite. Спасибо за ваши усилия. – Kenz

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