Ich versuche eine einzelne Seite App zu erstellen, die HTML5 App Cache verwendet, die eine völlig neue Version der App für jede einzelne URL zwischenspeichern wird, also muss ich jeden umleiten /
und von meiner App später weiterleiten lassen (dies ist die Lösung, die unter devdocs.io verwendet wird).Nginx config für Single Page App mit HTML5 App Cache
Hier ist mein Nginx Config. Ich möchte, dass alle Anfragen eine Datei senden, wenn sie existiert, umleiten an meine API unter /auth
und /api
und alle anderen Anfragen an index.html umleiten. Warum bewirkt die folgende Konfiguration, dass mein Browser sagt, dass eine Umleitungsschleife vorhanden ist? Wenn der Benutzer den Standortblock Nr. 2 trifft und seine Route nicht mit einer statischen Datei übereinstimmt, wird er an den Standortblock Nr. 3 gesendet, der ihn an "/" weiterleitet, was den Standortblock Nr. 1 treffen und index.html bedienen soll, richtig? Was verursacht die Umleitungsschleife hier? Gibt es einen besseren Weg, dies zu erreichen?
root /files/whatever/public;
index index.html;
# If the location is exactly "/", send index.html.
location =/{
try_files $uri /index.html;
}
location/{
try_files $uri @redirectToIndex;
}
# Set the cookie of the initialPath and redirect to "/".
location @redirectToIndex {
add_header Set-Cookie "initialPath=$request_uri; path=/";
return 302 $scheme://$host/;
}
# Proxy requests to "/auth" and "/api" to the server.
location ~* (^\/auth)|(^\/api) {
proxy_pass http://application_upstream;
proxy_redirect off;
}
Haben Sie 'root' Direktive und' index.html' Datei? Überprüfen Sie error.log –
Ja. Frage aktualisiert, um es aufzunehmen. –
Nichts in meinem Fehlerprotokoll. –