2013-09-30 20 views
5

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; 
} 

Trả lời

4

FYI, tôi đã từ bỏ. Tất cả các tài liệu nói rằng nó được cho là dễ dàng. Nhưng nó là quá nhiều của một nỗi đau để đối phó với. Thay vào đó, tôi yêu cầu các ứng dụng Django của chúng tôi sử dụng tên miền phụ và thiết lập vhost với máy chủ. Bằng cách này Django có thể chạy tại tài liệu gốc "/"

+3

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. –

Các vấn đề liên quan