You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django导航栏链接跳转报404 Page not found错误排查求助

问题原因

你出现404错误和路由末尾加不加斜杠无关,核心问题是根路由没有加载blog应用的路由配置:

  • 你在mysite/urls.py中仅通过path('', include('pages.urls'))引入了pages应用的路由,但导航栏对应的experience、education等所有业务路由都定义在blog/urls.py中,Django无法匹配到这些路由规则,因此访问时返回404。

修复方案

1. 修正根路由配置

修改mysite/urls.py,引入blog应用的路由,删除无效冗余代码:

"""firt_website URL Configuration

The `urlpatterns` list routes URLs to views.
"""
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    # 引入blog应用的路由,直接匹配根路径
    path('', include('blog.urls')),
    # 如果pages应用仍在使用,可以保留对应的路由引入,示例:
    # path('pages/', include('pages.urls')),
]

注:你原代码根路由下的app_name = 'pages'、from pages import urls属于无效配置,app_name需要定义在对应应用的urls.py文件中,不能放在根路由配置里。

2. 修正导航栏首页链接的硬编码错误

你当前navbar中首页的链接写为href="Acceuil.html",属于静态文件写法,不符合Django的路由规则,替换为反向解析写法即可:

<li class="u-nav-item"><a class="u-button-style u-nav-link" href="{% url 'main:homepage' %}" style="padding: 10px 0px; text-shadow: 0 0 8px rgba(128,128,128,1);">Home</a>

3. 额外检查项

  • 确认blog应用已经添加到mysite/settings.py的INSTALLED_APPS列表中
  • 确认所有HTML模板文件存放路径符合Django的模板查找规则,且文件名大小写和视图中render传入的文件名完全一致(例如视图写的是Education.html,实际文件不能是education.html)

内容的提问来源于stack exchange,提问作者yedx_1_10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:36:01