Django无法加载静态文件返回404错误如何解决?
排查步骤按优先级从高到低:
- 修正
settings.py里的STATICFILES_DIRS配置
你当前的配置没有绑定项目根目录,相对路径会导致Django无法定位静态文件夹,且如果用元组存储单条路径时必须加后缀逗号,否则会被识别为字符串类型,推荐改成更不易踩坑的列表写法:# 先确认配置顶部存在根目录变量,默认生成的项目都会自带,删掉了需要补回 BASE_DIR = Path(__file__).resolve().parent.parent STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] - 检查静态文件目录结构与拼写
确认项目根目录下的目录结构完全匹配:static/main/css/index.css,注意Linux/类Unix系统区分文件名大小写,大小写不匹配也会返回404。 - 检查
INSTALLED_APPS配置
确认列表里包含django.contrib.staticfiles,这个是Django处理静态资源的默认内置应用,被移除的话要加回来。 - 检查开发环境路由配置
如果你用python manage.py runserver做开发服务器,需要在项目根目录的urls.py末尾加上静态文件路由规则:from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 你原来的路由规则 ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) # 若未配置STATIC_ROOT,可替换为 document_root=settings.STATICFILES_DIRS[0] - 检查
DEBUG配置
开发环境下要保持DEBUG = True,如果设为False,Django的开发服务器不会自动处理静态资源,需要配置STATIC_ROOT后执行python manage.py collectstatic命令收集静态文件,再用Nginx/Apache等web服务器托管静态资源。
内容的提问来源于stack exchange,提问作者goozzy
相关产品推荐
相关产品推荐

