Django无法匹配空路径问题排查:已配置路由仍报错
问题原因及解决办法
核心问题
你的项目根URL配置里,仅给pricelist应用绑定了/pricelist/路径,而你访问的**空路径(/)**在项目URL中没有对应路由,所以Django无法匹配。
应用里的path("")是相对项目设置的前缀pricelist/生效的,它对应的实际访问路径是/pricelist/,而非根路径/。
解决办法
根据需求选择以下任一方案:
方案1:让根路径指向应用的index视图
修改项目的urls.py,添加根路径路由配置:
from django.contrib import admin from django.urls import include, path from pricelist import views urlpatterns = [ path('admin/', admin.site.urls), path('pricelist/', include("pricelist.urls")), path("", views.index) # 新增:根路径指向index视图 ]
方案2:将应用路由挂载到根路径
若希望pricelist应用的所有路由都绑定在根路径下,修改项目urls.py的路径前缀为空:
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path("", include("pricelist.urls")) # 将前缀pricelist/改为空字符串 ]
验证
修改后重启Django开发服务器:
- 方案1:访问
http://localhost:8000/和http://localhost:8000/pricelist/都会显示"Hello world!" - 方案2:仅
http://localhost:8000/会显示内容,/pricelist/路径不再生效
内容的提问来源于stack exchange,提问作者Masterofdeguise
相关产品推荐
相关产品推荐

