gpt4 book ai didi

未添加 django 尾部斜杠

转载 作者:行者123 更新时间:2023-12-04 17:38:25 24 4
gpt4 key购买 nike

所以我有一个 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,然后加载网页?

如果我手动将斜杠添加到 url,那么页面会按预期加载,每个人都喝茶并提早下类。

更新:

我的 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',
)

更新:

从我尝试访问 url 时页面上的错误消息:

Django Version: 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 查找事情是找到我输入的所有 url,认为它们是 css 条目。我输入了 media_root(我的 css 等文件所在的文件夹)和 media_url(我用来指示获取静态文件的 url)的值,一切都很好。

最佳答案

"does not exist"应该类似于 "Page not found" .因此,我怀疑您面对的不是正常的 404,而是由错误配置的 urlconf 中某些不匹配的 View 引发的 404。例如,我发现 django.views.static.serve会提出 Http404('some_path does not exist') ,你能查一下urls.py确保 View 如 static.serve不匹配路径如 /stories ?

如果有匹配项,Django 不会附加后缀斜杠并自动重定向。

你可以通过

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

知道哪个 View 实际匹配。

关于未添加 django 尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10685178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com