Django页面跳转异常:landing_page跳转时路径拼接错误如何解决
问题原因
你写的href='xxx/another_page.html'属于相对路径,浏览器会默认在当前页面的访问路径(也就是localhost/landing_page/)后拼接你填写的路径,所以最终访问地址才会多出/landing_page/前缀。
解决方法
方法1:直接修改为根路径绝对地址
在路径开头添加斜杠/即可,修改后的代码如下:
<a href='/xxx/another_page.html'> click here </a>
开头加/后,浏览器会直接从域名根路径开始拼接地址,就能跳转到你预期的localhost/xxx/another_page.html。
方法2(Django官方推荐规范写法):使用URL反向解析
这种方法后续修改路由路径时不需要挨个调整模板内的链接,可维护性更强,操作步骤如下:
- 第一步:在项目/对应应用的
urls.py文件中,给目标路由添加name参数,示例:
# urls.py from django.urls import path from . import views urlpatterns = [ # 其他现有路由 path('xxx/another_page.html', views.xxx_view, name='another_page'), ]
- 第二步:把模板内的a标签改为用Django模板标签生成地址:
<a href='{% url "another_page" %}'> click here </a>
Django会自动根据urls.py的配置生成正确的访问地址,不会出现路径拼接错误的问题。
内容的提问来源于stack exchange,提问作者VRUSHAB GOWDA
相关产品推荐
相关产品推荐

