Tôi đã có Django chạy phía sau Nginx với fastcgi_pass. Tôi chạy Django ở một đường phụ như "/ django/sample".Django Admin + FORCE_SCRIPT_NAME + Đăng nhập chuyển hướng không chính xác
location /django/sample {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
Tôi sử dụng FORCE_SCRIPT_NAME trong mô-đun cài đặt django dường như khắc phục tất cả sự cố tôi đang gặp phải khi chạy trên đường phụ.
trong settings.py:
FORCE_SCRIPT_NAME = "/django/sample/"
tôi đi vào đây để đăng nhập với admin (và chính xác có được giao diện người dùng admin):
http://server/django/sample/admin
Nhưng khi tôi gửi, nó chuyển hướng đến:
http://server/django/sample/django/sample/admin
Điều thật kỳ lạ là nếu tôi thay đổi FORCE_SCRIPT_NAME = "" thì thông tin đăng nhập hoạt động.
NHƯNG, sau đó tất cả các liên kết trong trang quản trị được/admin, không/django/mẫu/admin/
tôi thiếu cái quái gì? Đặt FORCE_SCRIPT_NAME = "/ django/sample /" dường như sửa mọi thứ trừ đăng nhập quản trị viên.
Bất kỳ ý tưởng nào?
UPDATE:
Tôi cũng đã cố gắng sử dụng fastcgi_split_path_info trong conf nginx (và đưa ra FORCE_SCRIPT_NAME trong cài đặt). Một lần nữa sửa chữa tất cả các vấn đề đường dẫn ngoại trừ chuyển hướng đăng nhập quản trị viên.
conf như thế này:
location /django/sample {
fastcgi_split_path_info ^(/django/sample)(.*)$;
include fastcgi_params;
fastcgi_pass 127.0.0.1:8025;
}
Tôi biết nó đã được một vài năm sau đó nhưng tôi nói với bạn tôi đang gặp vấn đề tương tự. Đây là # $ * @ $ (! Tôi thực hiện một số kiểm tra trong máy chủ Phát triển và nó hoạt động hoàn hảo, nhưng ngay khi nó được chuyển sang sản xuất một số liên kết bắt đầu bị hỏng, chẳng hạn như Chuyển hướng. Điều này khiến tôi phát điên. đã được phát triển tốt hơn. –