2015-06-19 10 views
6

Ich benutze ASP.NET 5, wo die gesamte Ordnerstruktur geändert und die web.config ersetzt wird (im Vergleich zu früheren ASP.NET-Versionen). Ich mache Seite Client-Routing AngularJS mit, und ich habe diesen Weg:URL-Umschreibung in ASP.NET 5

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

Alles funktioniert wie sehnt sich, wie ich auf meine index.html starten und klicken Sie auf einen Link zu/Filmen/hinzufügen. Wenn ich die Seite mit den/Filme/add URL neu zu laden, gibt mir der Server eine 404. diesem Tutorial Laut ich eine Rewrite in web.config tun sollten, wie folgt aus:

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

Ich verwende IIS Express 10.0 (in Windows 10 Vorschau). Ich verstehe, dass der Teil in web.config in ASP.NET 5 noch vorhanden sein sollte, um IIS zu konfigurieren, aber ich bekomme kein Ergebnis davon. Muss ich mit IIS Express etwas anderes machen? Gibt es eine andere, allgemeinere Lösung in ASP.NET 5?

Danke!

+0

Die web.config Sie zeigen bereits eine Antwort für mich :) – CularBytes

Antwort

6

web.config wird immer noch unterstützt, aber es sollte in wwwroot Ordner gehen. Möglicherweise fehlt Ihnen das Url Rewrite-Modul für IIS.

Alternativ können Sie eine benutzerdefinierte OWIN-Middleware schreiben, um den HTML5-Routing-Modus zu unterstützen.

Siehe dies für ein Beispiel: http://geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in-asp.net-vnext.aspx

+0

Ah, danke! Natürlich sollte es in den wwwroot Ordner gehen, weiß nicht warum ich das vermisst habe. – mikeesouth