2012-05-21 34 views
5

vì vậy tôi có một ứng dụng django, và tôi truy cập url này:django Trailing Slash không được bổ sung

http://127.0.0.1:8000/stories 

và tôi có được điều này:

Request Method:  GET 

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

"stories" does not exist 

và sau đó tôi kiểm tra urls.py và tôi thấy:

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

và cuối cùng, tôi nhìn vào settins.py của tôi và tôi thấy:

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

không nên, với APPEND_SLASH được đặt ở trên, url không có dấu gạch chéo là 301 được chuyển hướng đến url có dấu gạch chéo và sau đó tải trang web?

nếu tôi làm thêm dấu gạch chéo vào url theo cách thủ công, sau đó tải trang như mong đợi và mọi người đều có trà và gõ tắt sớm.

UPDATE:

tôi cũng có cụm từ này trong settings.py của tôi:

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:

từ thông báo lỗi trên trang khi tôi cố gắng để truy cập vào url:

Phiên bản Django: 1.3.1

GIẢI THÍCH: vì vậy okm đã đập vào tiền, mật ong. Vấn đề là các url của tôi - ngay ở phía dưới, tôi đã này:

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

gì tôi đã không, tuy nhiên, thực hiện được rằng MEDIA_URL và MEDIA_ROOT không được nhập vào settings.py của tôi - họ đều chỉ các chuỗi trống ('')

để tìm kiếm url đã tìm tất cả các url tôi đã nhập, nghĩ rằng chúng là các mục nhập css. Tôi đã nhập các giá trị cho media_root (thư mục chứa tệp css etc của tôi) và media_url (url tôi đang sử dụng để chỉ ra để nhận tệp tĩnh) và tất cả đều tốt.

+1

Bạn có ['django.middleware.common.CommonMiddleware'] (https://docs.djangoproject.com/en/1.4/ref/middleware/#django.middleware.common.CommonMiddleware') trong cài đặt 'MIDDLEWARE_CLASSES' của bạn? –

+0

có, tôi có điều đó cũng như – bharal

+0

Phiên bản django của bạn là gì? nó có thể là tốt để kiểm tra nó quá ... – FallenAngel

Trả lời

9

"does not exist" phải là một cái gì đó như "Page not found". Vì vậy, tôi nghi ngờ bạn không phải đối mặt với một 404 bình thường nhưng một 404 được nâng lên bởi một số quan điểm sai khớp trong urlconf cấu hình sai. Ví dụ: tôi thấy rằng django.views.static.serve sẽ tăng Http404('some_path does not exist'), bạn có thể kiểm tra urls.py để đảm bảo các chế độ xem như static.serve không khớp với đường dẫn như /stories?

Nếu có kết quả phù hợp, Django sẽ không nối thêm dấu gạch chéo và tự động chuyển hướng.

Bạn có thể kiểm tra bằng cách

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

để biết được xem thực sự được đối sánh.

+0

ah. Bạn đa đung! Mặc dù tôi đã * cũng * nhận được lỗi "không tìm thấy trang" cho một số trang không có dấu gạch chéo, điều này đã khiến tôi tắt. Giải thích trong câu hỏi. – bharal

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