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

Django静态文件加载失败:dynamic-formset.js无法运行且报404错误

解决静态JS文件404及无法运行的问题

嘿,这个404报错指向很明确——服务器压根找不到你的dynamic-formset.js和jquery-3.3.1.js文件!咱们一步步排查解决:

  • 先确认文件的实际位置是否匹配路径
    你得先核对项目里的文件结构:

    • 如果是用Django默认的app内静态文件,那文件路径应该是你的app名称/static/js/dynamic-formset.js和你的app名称/static/js/jquery-3.3.1.js;
    • 如果是项目根目录下的全局静态文件夹,那得确保文件放在项目根目录/static/js/下面。
      另外要注意大小写问题,Linux服务器对文件名大小写敏感,别把JQuery-3.3.1.js写成了jquery-3.3.1.js这类错误。
  • 检查Django的静态文件配置是否正确
    打开项目的settings.py文件,逐一确认:

    1. 确保INSTALLED_APPS里包含django.contrib.staticfiles(这个默认是自带的,但最好检查下);
    2. 确认STATIC_URL = '/static/'(如果你改了这个值,模板里的{% static %}标签也要对应调整);
    3. 如果用了项目根目录的static文件夹,要在settings.py里添加STATICFILES_DIRS配置:
      STATICFILES_DIRS = [
          BASE_DIR / "static",
      ]
      
    4. 开发环境下要保证DEBUG = True,因为当DEBUG=False时,Django不会自动托管静态文件,需要手动收集。
  • 调整JS文件的加载顺序
    你现在的代码是先加载dynamic-formset.js再加载jQuery,但如果dynamic-formset.js依赖jQuery的话,这会直接导致JS无法运行(因为先加载的脚本找不到jQuery对象)!正确的顺序应该是先加载jQuery,再加载依赖它的动态表单脚本:

    <script src="{% static 'js/jquery-3.3.1.js' %}"></script>
    <script src="{% static 'js/dynamic-formset.js' %}"></script>
    
  • 开发环境下可尝试手动收集静态文件
    虽然DEBUG=True时Django会自动找静态文件,但有时候手动运行collectstatic能解决识别问题:

    python manage.py collectstatic
    

    运行时会提示是否覆盖文件,确认即可,这会把所有分散的静态文件统一收集到STATIC_ROOT指定的目录(前提是你配置了STATIC_ROOT)。

按照上面的步骤逐一排查,先解决404的文件路径问题,再修正加载顺序,你的动态表单脚本应该就能正常运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:25:23