Django2.1.7主URL配置问题:根路径404,需映射/blog内容到根路径
解决Django根路径访问问题
先直接给你可行的修复方案:修改主项目的urls.py,把原来的path('/', include('homepage.urls'))替换成path('', include('homepage.urls')),修改后的完整代码如下:
from django.contrib import admin from django.urls import path, include from django.conf.urls.static import static from django.conf import settings urlpatterns = [ path('admin/', admin.site.urls), path('', include('homepage.urls')), # 这里把'/'改成空字符串 ]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
为什么原来的配置会触发404?
Django的URL匹配逻辑有个细节:处理请求URL时,会自动去掉开头的/,再和path()里的前缀做匹配。比如访问http://localhost:8000时,实际要匹配的路径是空字符串'',而你之前用path('/', include(...)),相当于要求路径里必须有一个单独的/,这和根路径的空字符串不匹配,自然就返回404了。
改成空字符串前缀后,主URL的空前缀加上homepage.urls里的空路径path('', views.homepage),正好完美匹配根路径的请求,此时访问http://localhost:8000就会触发homepage视图,返回你想要的Hello内容。
验证效果
修改后重启开发服务器,访问http://localhost:8000就能正常看到Hello,同时http://localhost:8000/admin也能正常访问后台管理页面,不会冲突。
内容的提问来源于stack exchange,提问作者Himel Rana
相关产品推荐
相关产品推荐

