2016-08-08 2 views
5

Я работаю над приложением Angular2. Он использует «@ угловой/общий»: «2.0.0-rc.4» и «@ angular/router»: «3.0.0-beta.2».Angular2 - обновление страницы 404 при размещении в Azure

Моя проблема заключается в том, что, когда я использую обновления браузера на некоторых страницах я вижу ошибку говоря ...

"Ресурс вы ищете, был удален, было изменено его имя или Временно недоступен."

Это также происходит, если я сразу же ударил URL.

Пример URL является ... https://tilecasev2.azurewebsites.net/profile/therichmond

Однако при просмотре страниц через домашнюю страницу они работают нормально, но только до обновилась (https://tilecasev2.azurewebsites.net).

У меня есть ниже в моей голове ... index.html

<base href="/"> 

Почему это происходит и как я могу это исправить?

+1

Похоже DUP из http://stackoverflow.com/questions/31415052/angular-2-0 -router-not-work-on-reloading-the-browser –

+0

Я думаю, что с тех пор маршрутизатор изменился, и исправление больше не работает. –

+0

Это не связано с маршрутизатором. Серверу необходимо поддерживать HTML5 pushState или вам нужно переключить маршрутизатор Angular2 для использования 'HashLocationStrategy', тогда нет поддержки сервера. –

ответ

23

HashLocationStrategy избегает этой проблемы путем включения во всех ваших угловых маршрутов в #, но на самом деле не затруднительное это.

Чтобы угловые маршруты без хешей работали в лазури так же, как в локальной среде разработки, вам просто нужно настроить IIS, чтобы переписать все запросы с правами root. Это позволяет угловой ручке маршрутизации.

Чтобы сделать это, добавьте Web.config файл в корневую папку вашего сайта со следующим содержанием:

<configuration> 
<system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="Main Rule" stopProcessing="true"> 
       <match url=".*" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="/" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
</configuration> 
+0

Это сделало это для меня! Спасибо, Стив! –

+0

поиск - копия - это работает! Мне нравится stackoverflow. Thanx. – Reinhard

+0

Я поместил web.config в папку 'src', и теперь все работает. –

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