Django带参数URL无法加载静态文件问题求助
Django带参数URL下静态文件找不到的解决方法
你的问题核心是模板里引用静态文件用了相对路径:
- 访问无参数的一级URL(比如
/iniciativa)时,浏览器以网站根目录为基准解析相对路径,静态文件能正常加载; - 但访问带参数的二级URL(比如
/validador/123)时,浏览器会把当前URL的validador/当成基准路径,导致静态资源请求路径变成/validador/static/xxx,自然找不到文件。
解决步骤:
在模板顶部加载static标签
打开validador.html,在最开头添加:{% load static %}改用绝对路径引用静态文件
把模板里原来的相对引用(比如<script src="static/js/main.js">)替换成static标签生成的绝对路径:<script src="{% static 'js/main.js' %}"></script>也可以直接写根路径开头的绝对路径(但推荐用static标签,适配
settings.py里的STATIC_URL配置):<script src="/static/js/main.js"></script>
你的URL配置和视图函数本身没有问题,只要修正模板里的静态文件引用方式,就能解决这个路径错误的问题。
内容的提问来源于stack exchange,提问作者Leonardo Esquivel
相关产品推荐
相关产品推荐

