Ho due applicazioni situate su due computer separati. Sul computer A, nel file urls.py
Ho una linea come la seguente:URL django senza barra finale non reindirizzano
(r'^cast/$', 'mySite.simulate.views.cast')
E questo URL funzionare sia per mySite.com/cast/
e mySite.com/cast
. Ma sul computer BI hanno un URL simile scritto fuori come:
(r'^login/$', 'mySite.myUser.views.login')
Per qualche ragione sul computer B al url mySite.com/login
/funzionerà ma mySite.com/login
si bloccherà e non riesca a dirigere di nuovo a mySite.com/login/
come lo farà sul computer A. E ' c'è qualcosa che ho perso? Entrambi i file url.py
sembrano identici a me.
"Se impostato su True, se l'URL della richiesta non corrisponde a nessuno dei modelli in URLconf e non termina con una barra, un reindirizzamento HTTP viene emesso sullo stesso URL con una barra aggiunta. Si noti che il reindirizzamento potrebbe causare la perdita di tutti i dati inviati in una richiesta POST. ". "L'impostazione APPEND_SLASH è utilizzata solo se CommonMiddleware è installato ...". Preferisco la risposta di Michael Gendin per una soluzione più pulita. – Wtower
Questo non funziona se si utilizza l'ulteriore url "catch all" all'ultima voce del proprio urlpatterns. La risposta di @ speedplane funzionerà anche in quelle situazioni. Ma, ovviamente, questo è più semplice e dovrebbe essere usato se non ci sono "urlpattern". – np8