Django 404页面找不到问题求助:about页面无法渲染
解决Django中About页面404错误的问题
嘿,我立刻就发现问题所在了——你的URL路由配置出现了路径重复的情况,这才导致访问/about/时触发404错误。
问题根源分析
看一下你的项目级urls.py:
urlpatterns = [ path('admin/', admin.site.urls), path('about/', include('pages.urls')), # 这里把pages的URL挂在了/about/路径下 path('', include('pages.urls')), # 同时也挂在了根路径下 ]
而pages应用的urls.py里又定义了:
path('about/', views.about_view, name='about'),
这意味着,只有当你访问/about/about/这个路径时,才会匹配到about_view视图。但你肯定是直接访问/about/,自然就找不到对应的视图了。
另外,你的模板路径配置是没问题的——templates/pages/about.html这个结构完全符合Django的模板查找规则,所以模板本身不是问题。
解决方案(推荐第一种)
方案1:清理项目级URL配置,保留根路径映射
直接删除项目urls.py里的path('about/', include('pages.urls')),只保留根路径的映射,这样pages里的URL规则会直接作用于网站根路径:
修改后的项目urls.py:
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('', include('pages.urls')), # 只保留这一行 ]
这样修改后:
- 访问
/会匹配pages里的index视图 - 访问
/about/会匹配pages里的about_view视图,完美解决404问题。
方案2(不推荐):调整pages应用的URL规则
如果你非要保留项目级的path('about/', include('pages.urls')),那就要把pages里的about路径改成空路径:
修改后的pages应用urls.py:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name="index"), path('', views.about_view, name='about'), # 这里改成空路径 ]
但这个方案有个致命问题:pages里的两个视图都映射到了空路径,会导致优先级冲突(index会覆盖about),所以非常不建议这么做。
验证修改
修改完URL配置后,重启Django开发服务器,访问/about/就能正常看到你的about页面啦!
内容的提问来源于stack exchange,提问作者dantech3668
相关产品推荐
相关产品推荐

