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

将Django项目部署到Linux服务器后遇静态文件及400错误求助

问题解决指南

一、Bad Request (400) 错误排查

  1. 修复settings.py语法错误
    你的STATICFILES_DIRS配置存在语法问题,缺少闭合括号和逗号,正确写法应为:

    STATICFILES_DIRS = (os.path.join(BASE_DIR, 'employee/static'),)
    

    语法错误会导致Django配置加载异常,在DEBUG=False的生产环境下可能直接引发400错误。

  2. 检查CSRF令牌传递
    如果是POST请求返回400,确认前端是否正确携带CSRF令牌:

    • 表单页面需添加{% csrf_token %}模板标签
    • AJAX请求要在请求头中携带X-CSRFToken,值可从页面cookie中获取
  3. 反向代理配置校验(如Nginx)
    若使用Nginx做反向代理,确保配置中传递了正确的Host头:

    location / {
        proxy_pass http://你的Django服务地址;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    

    缺失Host头会触发Django的安全校验,直接返回400错误。

二、collectstatic重复文件错误处理

Error: Found another file with the destination path 'css/mystyle.css'

这个错误说明项目中多个静态目录存在同名同路径的css/mystyle.css,Django收集静态文件时只会保留第一个找到的版本,其余会被忽略。解决方式:

  1. 重命名重复文件:将其中一个文件改名(比如css/employee_mystyle.css),同时修改模板中对应的引用路径。
  2. 调整目录结构:给每个app的静态文件添加独立前缀,比如在employeeapp的静态目录下创建employee/css/mystyle.css,模板中引用路径改为{% static 'employee/css/mystyle.css' %}。
  3. 修改目录优先级:如果希望保留某一个版本的文件,调整STATICFILES_DIRS中的目录顺序,让目标文件所在目录排在前面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:40:43