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

Ubuntu服务器部署Django后Nginx无法加载静态文件求助

解决Django静态文件无法加载的问题

从你的配置和报错信息来看,核心问题是Nginx的静态文件路径配置和实际请求URL不匹配,加上一些小的配置细节问题,导致静态文件请求都被转发给Django,而Django找不到这些文件返回404。下面是一步步的解决方法:

1. 确保已收集静态文件到STATIC_ROOT

首先确认你已经执行了Django的静态文件收集命令,因为STATIC_ROOT目录需要手动收集所有静态资源:

python manage.py collectstatic

执行时如果提示确认,输入yes即可,这会把STATICFILES_DIRS里的静态文件和第三方应用(比如admin)的静态文件都复制到STATIC_ROOT指定的staticfiles目录里。

2. 修正settings.py的STATIC_ROOT配置

把STATIC_ROOT改成绝对路径,避免相对路径导致的路径解析问题:

import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"),]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')  # 改成绝对路径

3. 修改Nginx配置,匹配静态文件请求URL

你的Nginx配置里只处理了/staticfiles/开头的请求,但实际页面请求的是/static/开头的静态文件,所以需要调整Nginx的location配置:

server {
    server_name 138.197.172.33;
    access_log off;

    # 处理/static/开头的静态文件请求,指向实际的staticfiles目录
    location /static/ {
        alias /path/to/your/project/staticfiles/;  # 替换成你staticfiles目录的绝对路径,比如/var/www/myproject/staticfiles/
        expires 30d;  # 开启浏览器缓存,优化加载速度
        add_header Cache-Control "public, max-age=2592000";
    }

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
    }
}

注意:这里一定要用绝对路径,否则Nginx找不到静态文件目录。如果不知道项目路径,可以在服务器上执行pwd命令查看当前项目目录的绝对路径。

4. 修复静态文件目录权限

确保Nginx的运行用户(通常是www-data)有读取staticfiles目录的权限:

sudo chown -R www-data:www-data /path/to/your/project/staticfiles
sudo chmod -R 755 /path/to/your/project/staticfiles

5. 重启Nginx生效配置

修改完配置后,重启Nginx服务:

sudo systemctl restart nginx

为什么之前会报错?

  • 你的页面请求的是/static/xxx路径的静态文件,但Nginx只配置了处理/staticfiles/xxx的请求,所以所有静态文件请求都被转发给了Django。而当Django处于生产环境(DEBUG=False)时,它不会处理静态文件请求,因此返回404错误。
  • 之前的STATIC_ROOT用了相对路径,可能导致Django收集静态文件时路径解析错误;Nginx的root配置也不正确,用alias可以更准确地指向静态文件目录,避免路径拼接错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:35:17