2012-05-21 42 views
5

,所以我有一個Django應用程序,我訪問這個網址:Django的尾隨斜線沒有被添加

http://127.0.0.1:8000/stories 

,我得到這樣的:

Request Method:  GET 

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

"stories" does not exist 

,然後我檢查了urls.py我看到:

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

最後,我看着我的settins.py,我看到:

#appends a slash if nothing is found without a slash. 
APPEND_SLASH = True 

不應與APPEND_SLASH如上設置,沒有斜槓的URL進行301重定向到URL以斜線,然後將網頁加載?

如果我手動添加斜槓到網址,然後頁面加載按預期,每個人都有一些茶,並提前敲門。

UPDATE:

我也有我的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:

從當我嘗試訪問的URL頁面上的錯誤消息:

Django版本:1.3.1

解決:所以okm是金錢轟炸,親愛的。問題是我的網址 - 就在底部,我有這個:

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

我已經沒有什麼,但是,做的是,該MEDIA_URL和MEDIA_ROOT我settings.py均未進入 - 他們都只是空字符串(「」)

這樣的網址找到事情是找到願意進入我的所有URL,以爲他們的CSS條目。我輸入了media_root(我的css etc文件所在的文件夾)和media_url(我用來指示獲取靜態文件的url)的值,並且都很好。

+1

你有['django.middleware.common.CommonMiddleware'(https://docs.djangoproject.com/en/1.4/ref/middleware/#django.middleware.common。CommonMiddleware')在你的'MIDDLEWARE_CLASSES'設置中? –

+0

是的,我也有那裏 – bharal

+0

什麼是你的django版本?它可能是很好的檢查... – FallenAngel

回答

9

"does not exist"應該是這樣的"Page not found"。因此,我懷疑你沒有面對正常的404,而是404錯誤配置的urlconf中的一些錯誤匹配視圖。例如,我發現django.views.static.serve將提高Http404('some_path does not exist'),您可以檢查urls.py確保意見如static.serve不匹配路徑,如/stories

如果有匹配的,則Django不會追加後綴斜線和自動重定向。

您可以通過

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

檢查,以瞭解哪些觀點實際上得到匹配。

+0

啊。你是對的!儘管我還*在沒有斜槓的情況下爲某些頁面獲取了「頁面未找到」錯誤,這導致我離開。問題中的解釋。 – bharal