Próbuję zbudować pojedynczą aplikację strony, która będzie korzystać z pamięci podręcznej aplikacji HTML5, która będzie buforować całą nową wersję aplikacji dla każdego odrębnego adresu URL, dlatego muszę przekierować wszystkich do /
i moja aplikacja będzie je potem trasować (jest to rozwiązanie używane na devdocs.io).Konfiguracja Nginx dla aplikacji jednostronicowej z pamięcią podręczną HTML5
Oto moja konfiguracja nginx. Chcę, aby wszystkie żądania wysłały plik, jeśli istnieje, przekierowuję do mojego interfejsu API pod numer /auth
i /api
i przekierowuję wszystkie inne żądania do index.html. Dlaczego poniższa konfiguracja powoduje, że moja przeglądarka mówi, że istnieje pętla przekierowania? Jeśli użytkownik trafi blokadę nr 2, a jego trasa nie pasuje do pliku statycznego, jest on wysyłany do bloku lokalizacji nr 3, który przekieruje go do "/", który powinien trafić blok lokalizacji nr 1 i służyć index.html, prawda? Co powoduje tutaj pętlę przekierowania? Czy istnieje lepszy sposób na osiągnięcie tego?
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;
}
Czy masz dyrektywę root i plik index.html? Sprawdź error.log –
Tak. Pytanie zaktualizowane, aby je uwzględnić. –
Nic w moim dzienniku błędów. –