所以我有一个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,没有斜杠的网址被301重定向到带有斜杠的网址,然后加载网页?
如果我做手动将斜杠添加到网址,则页面会按预期加载,每个人都会喝茶并提前敲门。
更新:
我在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',
)
更新:
当我尝试访问网址时,从页面上的错误消息:
解答:亲爱的,所以okm对钱很感兴趣。问题是我的网址 - 就在底部,我有这个:Django版本:1.3.1
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
- 它们都只是空字符串('')
所以网址查找的东西是找到我输入的所有网址,认为它们是css条目。我输入了media_root(我的css等文件所在的文件夹)和media_url(我用来表示获取静态文件的URL)的值,一切都很好。
答案 0 :(得分:9)
"does not exist"
应该类似于"Page not found"
。因此,我怀疑你没有面对正常的404,而是由于错误配置的urlconf中的一些不匹配的视图而引发的404。例如,我发现django.views.static.serve
会引发Http404('some_path does not exist')
,您是否可以检查urls.py
以确保static.serve
等视图与/stories
等路径不匹配? / p>
如果匹配,Django将不会附加后缀斜杠并自动重定向。
您可以通过
进行检查from django.core.urlresolvers import resolve
resolve('/stories')
知道哪个视图实际匹配。