Я пытаюсь создать одностраничное приложение, которое использует кэш приложений HTML5, который кэширует всю новую версию приложения для каждого отдельного URL-адреса, поэтому я должен перенаправить всех на /
и попросите их использовать их после этого (это решение используется на devdocs.io).Конфигурация Nginx для одностраничного приложения с кэшем приложений HTML5
Вот моя конфигурация nginx. Я хочу, чтобы все запросы отправляли файл, если он существует, перенаправляют на мой API по адресу /auth
и /api
и перенаправляют все остальные запросы в index.html. Почему следующая конфигурация заставляет мой браузер сказать, что существует цикл перенаправления? Если пользователь попадает в блок местоположения №2, а его маршрут не соответствует статическому файлу, он отправляется в блок №3, который перенаправляет его на «/», который должен ударить по блоку №1 и служить index.html, правильно? Что вызывает цикл перенаправления здесь? Есть ли лучший способ сделать это?
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;
}
У вас есть директива 'root' и' index.html'? Проверьте error.log –
Да. Вопрос обновлен, чтобы включить его. –
Ничего в моем журнале ошибок. –