У нас есть сервер разработки с множеством одностраничных приложений, которые также обрабатывают маршрутизацию во внешнем интерфейсе.
Обычно для одностраничного приложения я предполагаю, что вам нужно настроить что-то вроде:
location /some/path {
try_files $uri $uri/ /index.html?$args;
}
Теперь на нашем сервере разработки довольно много работы по перенастройке nginx для каждого небольшого тестового приложения, которое люди там устанавливают.
Я хочу:
- Показывать файл, если он найден
- Показывать индекс. html файл, если путь - папка
- Если не найден, go верните одну папку и попробуйте ищите index. html и обслуживайте его
- Попробуйте предыдущий шаг, пока не найдете index. html file
- Прекратите попытки, когда вы достигнете определенного пути root, например / some / путь, если у него нет индекса. html, вернуть содержимое папки
Если какое-то время l oop невозможно (производительность менее критична, так как это для целей разработки только), я мог ограничить его до 6 папок назад. Это должно охватывать большинство SPA.
Пример:
Допустим, у меня есть одностраничное приложение на:
/some/path/my-app
И одно идет по адресу:
/some/path/my-app/page1/subpage2/id3
Следует попробовать:
- / some / path / my-app / page1 / subpage2 / id3 (нет совпадения)
- / some / path /my-app/page1/subpage2/id3/index.html (нет совпадений)
- / some / path / my-app / page1 / subpage2 / index. html (нет совпадений)
- / some / path / my-app / page1 / index. html (нет совпадения)
- / some / path / my-app / index. html (СООТВЕТСТВИЕ!)
PS Я в основном фронтенд-разработчик, мои nginx знания очень ограничены.