Der Nginx-config für single-page-app mit HTML5-App-Cache

Ich versuche zu bauen, single page app nutzt HTML5 App-Cache, die cache-eine ganz neue version der app für jede eindeutige URL, damit ich umleiten muss jeder / und habe mir die app leitet Sie danach (das ist die Lösung devdocs.io).

Hier ist meine nginx config. Ich möchte, dass alle Anfragen an eine Datei senden, wenn es existiert, Umleitung auf meine API auf /auth und /api und leitet alle anderen Anfragen an index.html. Warum ist die folgende Konfiguration verursacht mein browser zu sagen, dass es eine redirect-Schleife? Wenn der Nutzer die Lage block #2 und seine route passt nicht auf eine statische Datei, die er geschickt, um die Lage block #3, die leitet ihn an "/" die schlagen sollte, location-block #1 und servieren index.html, richtig? Was verursacht die redirect-Schleife 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;
}
  • Sie haben root Richtlinie und index.html - Datei? - Check-Fehler.melden
  • Ja. Frage aktualisiert, um es.
  • Nichts in meinem error-log.
  • Haben Sie mit curl (oder wget)? Kann dein browser-Cache falsch umgeleitet...
  • curl gibt mir ein paar nginx HTML <center><h1>302 Found</h1></center><hr><center>nginx/1.8.0</center> und wget sagt "20 Weiterleitungen überschritten". Keine caching-Probleme hier.
InformationsquelleAutor winduptoy | 2015-09-15
Schreibe einen Kommentar