2012-05-21 10 views
5

quindi ho un app Django, e ho visitare questo URL:django finali non Slash che viene aggiunto

http://127.0.0.1:8000/stories 

e ottengo questo:

Request Method:  GET 

Request URL: http://127.0.0.1:8000/stories 

"stories" does not exist 

e poi ho il check out l'urls.py e vedo:

#stories 
url(r'^stories/$', 
    StoryShowView.as_view(
     context_object_name='story_list', 
     template_name='accounts/viewAndAddStory.html') 
), 

e, infine, guardo la mia settins.py e vedo:

non dovrebbe, con l'APPEND_SLASH impostato come sopra, l'url senza la barra essere reindirizzato all'URL con la barra, quindi la pagina web viene caricata?

se i do aggiungi manualmente la barra all'URL, quindi la pagina viene caricata come previsto e tutti hanno un po 'di tè e si spengono presto.

UPDATE:

ho anche questa voce nel mio settings.py:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
) 

UPDATE:

dal messaggio di errore nella pagina quando provo ad accedere all'URL:

Django Versione: 1.3.1

RISOLTO: così okm è stato bang sui soldi, tesoro. Il problema era il mio urls - proprio in fondo, ho avuto questa:

if settings.DEBUG: 
    urlpatterns += patterns('', 
     url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], 
     'django.views.static.serve', 
     {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}) 
    ) 

non quello che avevo, però, fatto era che il MEDIA_URL e il root_supporto, non sono stati inseriti nel mio settings.py - erano entrambi semplicemente stringhe vuote ('')

quindi la ricerca dell'URL era trovare tutti gli URL che avevo inserito, pensando che fossero voci di css. Ho inserito i valori per media_root (cartella dove sono i miei file css etc) e media_url (l'url che stavo usando per indicare di ottenere file statici) e tutto andava bene.

+1

Avete ['django.middleware.common.CommonMiddleware'] (https://docs.djangoproject.com/en/1.4/ref/middleware/#django.middleware.common.CommonMiddleware') nell'impostazione 'MIDDLEWARE_CLASSES'? –

+0

sì, ce l'ho anch'io – bharal

+0

Qual è la tua versione di django? potrebbe essere bello controllare anche ... – FallenAngel

risposta

9

Il "does not exist" dovrebbe essere qualcosa come "Page not found". Pertanto, sospetto che tu non stia affrontando un normale 404 ma un 404 generato da una vista non corretta in urlconf configurato in modo errato. Ad esempio, ho trovato che django.views.static.serve avrebbe aumentato Http404('some_path does not exist'), è possibile controllare urls.py per garantire visualizzazioni come static.serve non corrisponde percorso come /stories?

Se è presente una corrispondenza, Django non aggiunge la barra del suffisso e reindirizza automaticamente.

Si potrebbe verificare da

from django.core.urlresolvers import resolve 
resolve('/stories') 

di sapere quale visualizzare in realtà viene abbinato.

+0

ah. Avevi ragione! Anche se ero * * * ricevendo un errore "pagina non trovata" per alcune pagine senza la barra, che mi ha buttato fuori. Spiegazione nella domanda. – bharal

Problemi correlati