2015-06-19 1 views
6

Я использую ASP.NET 5, где изменяется вся структура папок и заменяется web.config (по сравнению с предыдущими версиями ASP.NET). Я делаю на стороне клиента маршрутизации с помощью angularJS и у меня есть этот маршрут:URL rewrite в ASP.NET 5

.when('/movies/add', { 
      templateUrl: '/Views/add.html', 
      controller: 'MoviesAddController' 
     }) 

Все работает как тоскует, как я начинаю на моем index.html и нажмите на ссылку на/кино/добавить. Если я перезагрузить страницу, используя/фильмы/добавить URL, сервер дает мне 404. Согласно этой статье я должен делать переписать в web.config, как это:

<!-- from http://stackoverflow.com/questions/25916851/wrapping-staticfilemiddleware-to-redirect-404-errors --> 

<configuration> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <rewrite> 
    <rules> 
     <!--Redirect selected traffic to index --> 
     <rule name="Index Rule" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_URI}" matchType="Pattern" pattern="^/api/" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="/index.html" /> 
     </rule> 
    </rules> 
    </rewrite> 
</system.webServer> 
</configuration> 

Я использую IIS Express 10.0 (в предварительном просмотре Windows 10). Я понимаю, что часть в web.config должна все еще существовать в ASP.NET 5 для настройки IIS, но я не получаю от этого никакого результата. Нужно ли мне что-то делать с помощью IIS Express? Есть ли другое, более общее решение, предоставляемое в ASP.NET 5?

Спасибо!

+0

web.config, вы показываете уже ответ для меня :) – CularBytes

ответ

6

web.config по-прежнему поддерживается, но он должен войти в папку wwwroot. Возможно, вам не хватает модуля Url Rewrite для IIS.

В качестве альтернативы вы можете написать специальное промежуточное программное обеспечение OWIN для поддержки режима маршрутизации html5.

Смотрите это для примера: http://geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in-asp.net-vnext.aspx

+0

Ах, спасибо! Конечно, он должен войти в папку wwwroot, не знаю, почему я это пропустил. – mikeesouth

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

  • Нет связанных вопросов^_^