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

Django中Static Files Not Found错误排查求助

解决Django静态文件404的问题

嘿,我看你遇到了静态文件加载404的问题,咱们一步步来排查和解决:

核心问题:混淆了STATIC_ROOT和STATICFILES_DIRS的作用

你注释掉了STATICFILES_DIRS配置,这大概率是问题的根源。先理清这两个配置的区别:

  • STATIC_ROOT:这是生产环境下使用的目录,用来存放collectstatic命令收集所有静态文件后的目标文件夹,DEBUG模式下Django不会从这里读取静态文件。
  • STATICFILES_DIRS:这是DEBUG模式下,Django查找静态文件的源目录列表,你需要把存放静态文件的源目录加到这里。

具体解决步骤

  1. 取消STATICFILES_DIRS的注释
    把settings.py里的这行注释去掉:

    STATICFILES_DIRS = [join(APPS_DIR, 'static')]
    

    这样Django在DEBUG模式下,就会去APPS_DIR/static目录下查找你的静态文件。

  2. 确认文件路径的准确性
    检查你的静态文件是否真的存在于这个路径:APPS_DIR/static/core/js/jquery_countdown/jquery.countdown.min.js

    • 注意文件名和文件夹名的大小写(类Unix系统下区分大小写,比如JQuery和jquery会被视为不同路径)
    • 确认没有拼写错误,比如文件夹名是jquery_countdown还是jquery-countdown
  3. 验证DEBUG模式是否开启
    确保settings.py里DEBUG = True,因为你在urls.py里只有当DEBUG为True时,才添加了静态文件的路由配置。如果DEBUG是False,这些路由不会生效,也会导致404。

  4. 可选:检查模板加载顺序
    你的模板里{% extends %}在{% load static %}之前是没问题的,但要确保{% load static %}在使用{% static %}标签之前,你现在的写法是正确的。

额外提示

如果之后部署到生产环境,记得:

  • 把DEBUG设为False
  • 运行python manage.py collectstatic命令,把所有静态文件收集到STATIC_ROOT目录
  • 用Nginx或Apache等web服务器来提供静态文件,而不是依赖Django的静态路由

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:44:37