2013-09-30 14 views
5

Ho Django in esecuzione dietro Nginx con fastcgi_pass. Corro Django in un sotto-percorso come "/ django/sample".Django Admin + FORCE_SCRIPT_NAME + Login reindirizzati in modo errato

location /django/sample { 
    include fastcgi_params; 
    fastcgi_pass 127.0.0.1:8025; 
} 

Io uso FORCE_SCRIPT_NAME nel modulo impostazioni Django che sembra risolvere tutti i problemi che ho avuto per quanto riguarda in esecuzione ad un sottotracciato.

in settings.py:

FORCE_SCRIPT_NAME = "/django/sample/" 

Vado qui per effettuare il login con admin (e correttamente ottenere l'interfaccia utente admin):

http://server/django/sample/admin 

Ma quando a mio avviso, che reindirizza a:

http://server/django/sample/django/sample/admin 

Ciò che è veramente strano è che se cambio FORCE_SCRIPT_NAME = "" il login funziona.

MA, allora tutti i link nella pagina di amministrazione sono/admin, non/django/campione/admin/

Che diamine mi manca? L'impostazione FORCE_SCRIPT_NAME = "/ django/sample /" sembra risolvere tutto eccetto il login dell'amministratore.

Qualche idea?

UPDATE:

Ho anche provato ad utilizzare fastcgi_split_path_info in conf nginx (e togliere FORCE_SCRIPT_NAME nelle impostazioni). Ancora una volta che corregge tutti i problemi del percorso tranne il reindirizzamento dell'accesso all'amministratore.

conf come questo:

location /django/sample { 
    fastcgi_split_path_info ^(/django/sample)(.*)$; 
    include fastcgi_params; 
    fastcgi_pass 127.0.0.1:8025; 
} 

risposta

4

FYI, ho rinunciato. Tutta la documentazione dice che dovrebbe essere facile. Ma è troppo doloroso da affrontare. Io invece sto richiedendo alle nostre app Django di utilizzare un sottodominio e configurare un vhost con il server. In questo modo Django può essere eseguito alla radice del documento "/"

+3

So che è stato qualche anno più tardi ma ti dico che sto avendo lo stesso problema. Questo è # $ * @ $ (! Eseguo diversi test nel server di sviluppo e funziona perfettamente, ma non appena si passa alla produzione alcuni link iniziano a rompersi, come ad esempio Redirect. Questo mi sta facendo impazzire. sono stati sviluppati meglio –