2016-10-14 6 views
1

Wir haben eine Website auf Azure mit einem REST-Back-End in C# geschrieben und ein Front-End in Angular2 geschrieben.Azure IIS Routing mit Angular2 -> 404

Wenn ich auf Menüs oder Schaltflächen in den Web-Seiten die richtige Seite geöffnet wird und die URL wird von <mydomain>/ auf zum Beispiel geändert <mydomain>/client/16 Dies funktioniert gut, und wenn ich es richtig verstehe die Angular2 Routing Pflege dieser stattfindet.

Aber wenn ich auf dieser Seite bin <mydomain>/client/16 und F5 treffe den Browser zu aktualisieren Ich erhalte einen Fehler 404: The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. Auch wenn ich es richtig verstehen dies durch den IIS-Routing behandelt wird.

Ich habe Posts seit Tagen gelesen und mehrere Vorschläge versucht, meist Rewrite-Regeln in die Web.config hinzufügen, aber bis jetzt hat noch nichts funktioniert.

Lokal haben wir dieses Problem nicht, da wir das Back-End in Visual Studio und das Front-End in NPM ausführen. Dies macht es sehr schwierig zu debuggen und zu lösen.

Was soll ich tun, um dies zu lösen?

+0

Do /client/16 wird von Ihrer Angular2 Route behandelt? Wenn ja, wie nennt man Rest-API? –

Antwort

3

auf dem II-Forum I How do I configure IIS for URL Rewriting an AngularJS application in HTML5 mode?

Addiert man diese Regel auf meine Web.config hingewiesen wurde mein Problem gelöst:

<rule name="AngularJS Routes" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="/" /> 
    </rule> 

Ich dachte, ich, bevor Sie dies versucht hatte, aber anscheinend nicht vollständig;)