Mam Django działającego za Nginxem z fastcgi_pass. Uruchomiłem Django na ścieżce podrzędnej, jak "/ django/sample".Django Admin + FORCE_SCRIPT_NAME + Nieprawidłowe przekierowania logowania
location /django/sample {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
używam FORCE_SCRIPT_NAME w module ustawień Django, który wydaje się rozwiązać wszystkie problemy miałem w odniesieniu do niej działających w podścieżki.
w settings.py:
FORCE_SCRIPT_NAME = "/django/sample/"
Idę tutaj, aby zalogować się z Administrator (a właściwie dostać UI administratora):
http://server/django/sample/admin
Ale kiedy złożyć, to przekierowuje do:
http://server/django/sample/django/sample/admin
Co jest naprawdę dziwne, że jeśli zmienię FORCE_SCRIPT_NAME = "" logowanie działa.
ale potem wszystkie linki na stronie administratora są/admin, nie/django/sample/admin/
co do cholery jestem brakuje? Ustawienie FORCE_SCRIPT_NAME = "/ django/sample /" wydaje się naprawić wszystko z wyjątkiem logowania administratora.
Wszelkie pomysły?
UPDATE:
Ja również próbowałem przy użyciu fastcgi_split_path_info w nginx conf (i wyjąć FORCE_SCRIPT_NAME w ustawieniach). Znowu to rozwiązuje wszystkie problemy z ścieżką, z wyjątkiem przekierowania logowania administratora.
conf tak:
location /django/sample {
fastcgi_split_path_info ^(/django/sample)(.*)$;
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
Wiem, że minęło kilka lat, ale mówię ci, że mam ten sam problem. To jest # $ * @ $ (! Wykonuję kilka testów na serwerze Development i działa to doskonale, ale jak tylko zostanie przeniesiony do produkcji, niektóre linki zaczynają się zepsuć, takie jak Redirects, co doprowadza mnie do szaleństwa. zostały lepiej rozwinięte. –