当 URL 以 Slash 结尾时,Django path() 抛出 404
Posted
技术标签:
【中文标题】当 URL 以 Slash 结尾时,Django path() 抛出 404【英文标题】:Django path() throws 404 when URL ends in Slash 【发布时间】:2019-01-24 04:12:48 【问题描述】:这里是 urls.py
path('about/', about, name='about'),
如果我访问 /about
会出现 404 错误,如果将其更改为 path('about', about, name='about')
,那么如果我访问 /about
可以,但 /about/
会出现 404 错误。
我在这里做错了什么,这在 Django 2.0 之前并没有发生
【问题讨论】:
如果您在升级后遇到此错误,则听起来像是 this question 的重复。 我没有升级到任何东西,我在问题中明确提到我正在使用 Django 2.0,这个问题对我没有多大帮助。 是的,我读到您正在使用 Django 2.0。当你说“这在 Django 2.0 之前没有发生”时,看起来你已经升级了 Django,但没有更新你的设置。如果/about
没有重定向到/about/
,则表明您的MIDDLEWARE
或APPEND_SLASH
设置存在问题。你可能会发现我在this answer 上的解释更有帮助。
【参考方案1】:
我会发表评论,但我还没有足够的声誉来发表评论。无论如何,以下可能会有所帮助:
您是否导入了您的视图?因为您引用 path() 错误。应该是这样的:
from . import views
urlpatterns = [
path('about/', views.about, name='about'),
]
【讨论】:
我没有显示导入语句,因为问题是关于path
,如果你想在这里知道我的导入from .views import about
你说你使用了两次/about
。一次有效,另一次无效……你写错字了吗?另外,您说使用/about/
会出错...您在哪里使用它?你的视图/模板是什么??以上是关于当 URL 以 Slash 结尾时,Django path() 抛出 404的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter - 当 URL 以斜杠结尾时,相对 URL 停止工作?