2015-06-19 8 views
6

Używam ASP.NET 5, w którym zmieniana jest cała struktura folderów, a plik web.config jest zastępowany (w porównaniu do poprzednich wersji ASP.NET). Robię po stronie klienta przy użyciu routingu angularjs i mam tę trasę:Przepisywanie adresu URL w ASP.NET 5

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

wszystko działa jak tęskni jak zacznę na moim index.html i kliknij na link do/filmów/dodać. Gdybym odświeżyć stronę używając/filmów/add URL, serwer daje mi 404. Zgodnie z tym tutorialu mam zrobić przepisać w pliku web.config, na przykład:

<!-- 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> 

używam IIS Express, 10,0 (w podglądzie systemu Windows 10). Rozumiem, że część w pliku web.config powinna nadal istnieć w ASP.NET 5, aby skonfigurować usługi IIS, ale nie otrzymam z tego żadnego wyniku. Czy muszę zrobić coś innego za pomocą IIS Express? Czy w ASP.NET 5 jest dostępne inne, bardziej ogólne rozwiązanie?

Dzięki!

+0

web.config pokażesz jest już odpowiedzią na mnie :) – CularBytes

Odpowiedz

6

web.config jest nadal obsługiwany, ale powinien przejść do folderu wwwroot. Być może brakuje modułu Urr Rewrite dla IIS.

Można również napisać niestandardowe oprogramowanie pośredniczące OWIN w celu obsługi trybu routingu html5.

Zobacz to na przykład: http://geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in-asp.net-vnext.aspx

+0

Ah, dzięki! Oczywiście powinien przejść do folderu wwwroot, nie wiem, dlaczego to przegapiłem. – mikeesouth