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

Django静态JS请求返回304但模板页面效果不显示问题咨询

Django模板页ProgressBar进度条不生效排查指引

你当前静态资源配置无问题,304状态码仅代表浏览器缓存命中、JS文件请求成功,不代表JS代码能正常执行,按以下优先级排查:

  • 首先打开浏览器F12开发者工具,切到Console面板看红色报错信息,前端JS执行错误不会输出到Django后端日志,所有前端执行问题优先看控制台报错。

高频故障点1:缺失依赖/变量未定义

你代码中直接调用ProgressBar.Circle是第三方库progressbar.js的API,未引入该库会直接报ProgressBar is not defined错误,JS执行直接中断。
另外你的代码中直接使用container变量,没有先获取DOM节点,会直接报container is not defined错误。
修复方式:

  1. 将progressbar.js库文件放到项目static目录下,在模板中按「先依赖、后自定义代码」的顺序引入
  2. 初始化进度条前先获取容器节点,修正后的JS代码结构:
document.addEventListener('DOMContentLoaded', function() {
  // 先获取容器节点,DOM加载完成后再执行初始化
  const container = document.getElementById('container');
  if (!container) return;

  const bar = new ProgressBar.Circle(container, {
    color: '#ff0000',
    // 最大宽度需和容器匹配避免裁切
    strokeWidth: 4,
    trailWidth: 1,
    easing: 'easeInOut',
    duration: 10000,
    text: {
      autoStyleContainer: false
    },
    from: { color: '#ff0000', width: 5 },
    to: { color: '#00cc00', width: 9 },
    step: function(state, circle) {
      circle.path.setAttribute('stroke', state.color);
      circle.path.setAttribute('stroke-width', state.width);
      const value = Math.round(circle.value() * 100);
      circle.setText(value === 0 ? '' : value);
    }
  });
  bar.text.style.fontFamily = '"Raleway", Helvetica, sans-serif';
  bar.text.style.fontSize = '2rem';
  bar.animate(1.0);
})

高频故障点2:静态资源引入方式/加载顺序错误

不要在Django模板中写死静态资源路径,必须用模板标签引入,避免路径匹配异常、缓存旧版本代码问题:

  1. 模板文件最顶部第一行添加{% load static %}
  2. 脚本标签放到容器节点之后、</body>标签之前,保证DOM渲染完成后再加载执行JS:
<!-- 页面内容 -->
<div id="container"></div>

<!-- 脚本放在body末尾 -->
<script src="{% static 'js/progressbar.min.js' %}"></script>
<script src="{% static 'js/script.js' %}"></script>

排查时在开发者工具Network面板勾选Disable cache,强制刷新页面绕过本地缓存,避免加载到旧版本的错误JS文件。


高频故障点3:容器节点样式异常

ProgressBar生成的SVG会撑满父容器,如果#container节点被设置为display: none、宽高为0、被其他元素遮挡,就算JS执行成功也看不到效果,可以先给容器加基础测试样式:

#container {
  width: 200px;
  height: 200px;
  margin: 2rem auto;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:42:19