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

Digital Ocean上Django项目静态文件无法加载求助

Django静态文件403 Forbidden问题排查与解决

我在Digital Ocean Droplet上部署首个Django项目,按照官方指南配置后页面可正常加载,但静态文件请求返回403 Forbidden错误。

关键配置文件

settings.py

BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_ROOT = os.path.join(BASE_DIR,"static")

STATIC_URL = '/static/'

DEBUG = False

COMPRESS_ROOT = os.path.join(BASE_DIR,"static")

COMPRESS_ENABLED = True

STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
]

urls.py

urlpatterns = [
    ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

服务器文件夹结构

root/
    snap/
    gymtracker/
        gymenv/
        gymtracker/
            gymtrackerapp/
            static/

静态文件实际路径:

/root/gymtracker/gymtracker/static/

错误信息:

Status Code: 403 Forbidden

问题排查与解决步骤

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

Nginx运行用户(默认是www-data)需要静态文件目录的读取权限,以及从根目录到static文件夹的遍历权限。执行以下命令:

# 将静态目录权限赋予www-data用户
chown -R www-data:www-data /root/gymtracker/gymtracker/static/
# 设置目录为755、文件为644的标准权限
find /root/gymtracker/gymtracker/static/ -type d -exec chmod 755 {} \;
find /root/gymtracker/gymtracker/static/ -type f -exec chmod 644 {} \;
# 确保上级目录有遍历权限
chmod 755 /root /root/gymtracker /root/gymtracker/gymtracker

2. 校验Nginx静态文件配置

打开Nginx站点配置文件(通常在/etc/nginx/sites-available/目录下),确认静态文件映射路径正确:

location /static/ {
    root /root/gymtracker/gymtracker/;  # 注意这里是static目录的上级目录,不要写static本身
    expires 30d;
}

修改后重启Nginx:

sudo systemctl restart nginx

3. 确认静态文件已正确收集

确保执行过collectstatic命令,将所有App的静态文件聚合到STATIC_ROOT目录:

cd /root/gymtracker
source gymenv/bin/activate
python manage.py collectstatic

执行时检查输出,确认文件都被复制到/root/gymtracker/gymtracker/static/下。

4. 移除开发环境静态路由

当DEBUG=False时,Django不会处理静态文件请求,urls.py中的static(...)路由仅在开发环境生效,生产环境应由Nginx直接处理,删除此行代码:

# 移除这一行
+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:25:23