Jeśli chcesz usunąć skrót (#), musisz użyć funkcji przepisywania na serwerze, aby obsłużyć całą ścieżkę index.html
. Jeśli nie, zawsze otrzymasz błąd 404
. To znaczy, że możesz przekierować 404
na index.html
.
Apache: dodać regułę przepisywania do pliku .htaccess
jak pokazują tutaj:
RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule^- [L]
# If the requested resource doesn't exist, use index.html
RewriteRule^/index.html
nginx: użytku try_files
, jak opisano w Front Controller Wzorzec Web Apps, zmodyfikowany, aby służyć index.html
:
try_files $uri $uri/ /index.html;
IIS: dodaj regułę przepisywania do web.config
, podobny do pokazanego tutaj:
<system .webserver="">
<rewrite>
<rules>
<rule name="Angular 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></add></conditions>
<action type="Rewrite" url="/">
</action></match></rule>
</rules>
</rewrite>
</system>
W kocur, możesz dodać go do web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<error-page>
<error-code>404</error-code>
<location>/</location>
</error-page>
</web-app>
Po przekierować ścieżki internetowej do index.html
, History API HTML5 będzie używany w Angular JS do kontrolowania trasy internetowej.Naszym głównym zadaniem jest po prostu pozwolić na wywołanie index.html
na serwerze.
Czy możesz pomóc w rozwiązaniu nginx? –
Minęło trochę czasu, odkąd zrobiłem to ostatnie, ale jest kilka przykładów z przykładami, takimi jak ten: https://gist.github.com/zdwolfe/6721115 Oprócz tego, co pokazują, prawdopodobnie potrzebujesz lokalizacji dla czegoś like/static, który obsługuje obrazy lub pliki javascript. –