2017-04-13 4 views
3

Ich bin mit einem Problem im Zusammenhang mit Winkel-Routing konfrontiert. Alle Seiten funktionieren einwandfrei, aber wenn die Seite neu geladen oder aktualisiert wird, gibt es 404 error.Ich verwende die Pfadlokalisierungsstrategie. Ich habe viel gesucht, aber fand Sache außer Hash-Standort-Strategie. Ich habe Hash Location Strategie versucht, aber fügt # in URL (Wie webiste.com/home#contact), aber ich möchte URL ohne #.Angular 2 Routing-Problem - 404 Fehler beim Aktualisieren oder Neuladen

I Experten Führer brauchen, wie ich nach der Suche 3 4 Tage steckten

Vielen Dank im Voraus

+0

Sie auf localhost oder einem Server versuchen? Wenn Sie auf dem Server sind, müssen Sie Ihre Seite auf die angeforderte Seite umleiten, ansonsten existiert ein Hash-Speicherort, wie Sie wissen –

+0

Check this link Vielleicht ist es hilfreich. [Angular2 ohne Hash in URL] (http://stackoverflow.com/questions/41662326/angular2-without-hash-in-the-url) –

Antwort

2

Abhängig davon, welchem ​​Server Sie verwenden, müssen Sie Ihren Routing konfigurieren, um immer index.html zu verweisen.

Natürlich müssen Sie <base href="/"> in <head> Ihrer index.html

einstellen Wenn Sie url aktualisieren site.com/myPage, Server versucht Ressource mit dem Namen myPage zu bekommen, wird in Ihrem Fall zurückkehren 404.

WAMP Einstellungen

Options -Indexes 

RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} -s [OR] 
    RewriteCond %{REQUEST_FILENAME} -l [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^.*$ - [NC,L] 
    RewriteRule ^(.*) index.html [NC,L] 

IIS-Einstellungen

<system.webServer> 
    <rewrite> 
     <rules> 
     <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> 
     </rules> 
    </rewrite> 
    </system.webServer> 
+0

i Window-Server verwenden als meine Anwendung in asp.net MVC ist –

+2

Für IIS siehe http://stackoverflow.com/questions/12614072/how-do-i-configure-iis-for-url-rewriting-an-angularjs-application-in-html5-mode –

+0

@ JánHalaša gab ein gutes Beispiel. Ich werde meine Antwort für die IIS-Konfiguration bearbeiten. –

Verwandte Themen