Django项目中HTML链接跳转另一HTML文件路径错误如何解决?
Django项目模板间跳转问题解决方案
问题根因
出现跳转失败的核心原因是:Django的
templates目录仅用于存储后端渲染用的模板文件,不会直接将目录的文件系统路径映射为对外可访问的URL路径,直接写死相对路径跳转templates内的子文件无法被Django路由系统识别,因此会返回404错误。
解决步骤
步骤1:绑定目标页面的访问路由
打开你项目对应app下的urls.py文件,为test.html新增一条路由规则,示例代码如下:
from django.urls import path from django.views.generic import TemplateView urlpatterns = [ # 原有首页路由,可根据你的实际配置调整 path('', TemplateView.as_view(template_name='homepage_template.html'), name='homepage'), # 新增test.html的访问路由,自定义路径、name标识即可 path('test/', TemplateView.as_view(template_name='homepage_photos/test.html'), name='test_page'), ]
步骤2:修改模板中的跳转链接
将homepage_template.html里原有的跳转a标签,替换为Django内置的url模板标签生成跳转路径,不要写死相对路径:
<!-- 替换前 --> <!-- <a href="homepage_photos/test.html"> text!</a> --> <!-- 替换后 --> <a href="{% url 'test_page' %}"> text!</a>
注意事项
- 不要尝试直接暴露
templates目录的对外访问权限,会存在严重的安全风险,所有模板页面都需要通过路由绑定后再提供访问 - 如果
test.html中引用了CSS、图片等静态资源,需要将静态资源存放到Django约定的static目录下,引用时使用{% static '资源路径' %}模板标签生成路径,不要直接写相对路径
内容的提问来源于stack exchange,提问作者Jack Ciafardo
相关产品推荐
相关产品推荐

