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

如何让Django正确生成页面跳转链接,避免相对路径拼接错误?

Django导航链接路径拼接错误解决方案

问题根本原因

导航栏中的链接使用了无开头斜杠的相对路径,浏览器会默认将相对路径拼接在当前页面的路径之后,因此访问/3页面时点击home链接会自动拼接为/3/home。

解决方案

方案1:硬编码绝对路径(快速修复)

直接给导航栏所有链接的href属性值开头添加斜杠/,表示从站点根路径开始跳转:

  • 原错误写法:<a href="home">首页</a>
  • 修改后写法:<a href="/home">首页</a>
    同理样式页链接修改为<a href="/style">样式页</a>即可。

方案2:使用Django内置url模板标签(规范推荐)

这是Django官方推荐的路径管理方式,避免硬编码路径后续维护困难:

  1. 先给urls.py中的路由配置添加name标识:
urlpatterns = [
    path('home', views.home, name='home'),
    path('style', views.style, name='style'),
    # 迷宫详情路由保持原有逻辑不变,也可新增name方便后续调用
    path('<int:maze_id>', views.get_maze, name='maze_detail'),
]
  1. 将导航栏的href属性替换为模板标签写法:
<a href="{% url 'home' %}">首页</a>
<a href="{% url 'style' %}">样式页</a>

Django会自动根据name对应生成正确的根路径跳转链接,无论当前在哪个子页面都不会出现路径拼接错误。

修改完成后重启Django服务、清空浏览器缓存即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:51:00