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

Django站点点击Blog链接重复跳转至blog/blog报错,如何解决?

解决Django中重复拼接URL路径的问题

你遇到的问题是相对URL路径导致的:
当模板里的链接写的是href="blog"这类相对路径时,第一次从根页面(localhost/)点击会正确跳转到localhost/blog;但当你处于localhost/blog页面时,浏览器会把相对路径拼接到当前路径后,就出现了localhost/blog/blog的错误地址。

下面是几种解决方法:

  • 直接使用绝对路径
    把模板中的链接从href="blog"修改为href="/blog",强制从网站根目录开始跳转,无论当前页面在哪,点击后都会指向localhost/blog。

  • 使用Django的url模板标签(推荐)
    这是Django官方推荐的URL管理方式,能避免硬编码路径带来的维护问题:

    1. 先在项目或应用的urls.py中给blog的URL配置name参数:
      # urls.py
      from django.urls import path
      from . import views
      
      urlpatterns = [
          path('blog/', views.blog_view, name='blog'),
          # 其他URL配置...
      ]
      
    2. 在模板中用{% url 'blog' %}生成正确的URL:
      <a href="{% url 'blog' %}">Blog</a>
      

    后续如果需要修改blog的URL路径(比如改成articles/),只需要修改urls.py里的path内容,所有模板中的链接会自动同步更新,无需逐个修改。

  • 统一导航栏的路径处理
    如果是网站全局导航栏出现这个问题,确保所有导航链接都使用上述两种方式之一,彻底避免相对路径的使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:54:16