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

AWS Lightsail上Django+Nginx+Gunicorn静态文件加载失败求助

Django静态文件无法加载的修复方案(AWS Lightsail Ubuntu)

针对你遇到的静态文件无法加载问题,核心问题出在Nginx路径配置错误和未执行静态文件收集命令,按以下步骤修复:

1. 修正Nginx静态文件配置

你的cht_web.conf中location /static/的root参数使用错误,替换成alias并指向正确的静态文件目录:

server {
    listen 80;
    server_name xxx.xxx.xxx.xxx;
    location / {
        include proxy_params;
        proxy_pass http://localhost:8000/;
    }
    # 修正后的静态文件配置
    location /static/ {
        alias /home/ubuntu/cht_web/staticfiles/;
        expires 30d; # 开启浏览器缓存优化加载速度
        autoindex off; # 关闭目录索引,更安全
    }
}

区别说明:root会将请求路径拼接在指定目录后,而alias会直接替换请求路径。你的静态文件最终存放在STATIC_ROOT(即/home/ubuntu/cht_web/staticfiles/),用alias能精准匹配到文件位置。

2. 收集所有静态文件到STATIC_ROOT

即使DEBUG=True,使用Gunicorn时Django不会自动托管静态文件,必须手动执行收集命令:

cd /home/ubuntu/cht_web
python manage.py collectstatic

执行时输入yes确认,系统会把所有APP的静态文件、STATICFILES_DIRS目录下的文件统一复制到STATIC_ROOT目录。

3. 修复文件权限

确保Nginx进程(默认用户www-data)有权读取静态文件:

sudo chown -R www-data:www-data /home/ubuntu/cht_web/staticfiles/
sudo chmod -R 755 /home/ubuntu/cht_web/staticfiles/

4. 重启Nginx生效配置

sudo systemctl restart nginx

完成以上步骤后,刷新网页即可加载静态文件。

内容的提问来源于stack exchange,提问作者Leik Caro Berenguer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:17:51