Próbuję uzyskać nginx
do pracy z obsługą opartego na identyfikatorze URI pushState
, którą zarządza dla mnie backbone.js
w aplikacji JavaScript.Przepisanie pliku nginx dla adresu użytkownika PushState-URL:
Teraz dostęp do identyfikatorów URI z jednym poziomem, np. example.com/users
działa dobrze, ale nie dwupoziomowy lub głębiej URI, takich jak example.com/users/all
, który jest wymieniony w Backbone documentation:
Na przykład, jeśli masz trasę/Dokumenty/100, serwer WWW moszczu być w stanie obsłużyć tę stronę, jeśli przeglądarka odwiedza że URL bezpośrednio
Więc, będąc daleko od zapoznania się z opcjami przepisywania nginx jest, wciąż jestem pewien, że mogę zrobić coś takiego rewrite^/index.html;
przekierować wszystko, aby mój index.html
, ale loosi ng out na ewentualnych statycznych plikach (obrazy, javascript & css) przechowywanych na tym samym serwerze, który muszę mieć możliwość dostępu.
Co powinienem zrobić zamiast pokazanej poniżej, bieżącej konfiguracji, aby to zadziałało?
server {
listen 80;
server_name example.com;
location/{
root /var/www/example.com;
try_files $uri /index.html;
}
}
Twoja pierwsza sugestia wydaje się wymagać ukośnik ... przepisać działa, gdy idę do „/ search /”, ale nie "/ search" – andrhamm
jak byś go rozwiązał, gdybyś nie miał końcowego ukośnika? –
Być może wyrażenie regularne, które akceptuje wszystko poza index.html? –