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

从Git克隆Django项目部署后静态资源部分加载失败求助

问题根源

你当前的配置存在两个核心错误,直接导致部分静态资源加载失败:

  1. Django 配置中STATICFILES_DIRS和STATIC_ROOT使用了同一路径,且STATIC_ROOT被注释,collectstatic命令无法将所有静态资源(包括Django自带、第三方包附带的静态文件)汇总到统一目录
  2. 可正常加载的CSS是原本就存放在你本地static目录下的自定义文件,其余未被汇总到Nginx读取目录的静态资源全部加载失败

解决方案

1. 修改Django settings.py配置

调整两个静态路径为不同目录,避免冲突,示例配置如下:

STATIC_URL = '/static/'
# 此处指向开发阶段你手动存放自定义静态文件的目录,不要和STATIC_ROOT重名
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_dev/')]
# 开启STATIC_ROOT,指向Nginx配置中读取静态资源的目录
STATIC_ROOT = '/home/web/tst/static/'

注意:不要混用os.path.join和Path对象的/语法,统一使用同一种路径拼接方式避免路径解析错误

2. 调整本地静态文件目录

将你项目根目录下原来的static文件夹重命名为static_dev,和STATICFILES_DIRS的配置保持一致,避免collectstatic执行时报路径冲突错误。

3. 重新执行静态资源汇总命令

激活项目虚拟环境后执行:
python manage.py collectstatic
确认执行后,Django会把所有静态资源(自定义静态文件、Django admin静态文件、第三方库自带静态文件)全部汇总到STATIC_ROOT指定的/home/web/tst/static/目录下。

4. 调整权限并重启Nginx

给Nginx运行用户开放静态目录的读取权限,执行以下命令:

sudo chown -R www-data:www-data /home/web/tst/static/
sudo systemctl restart nginx

5. 验证效果

清理浏览器缓存后重新访问站点,所有静态资源即可正常加载。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:27:07