回到顶部

阅读目录

Nginx 不能访问 (找不到)Django 静态文件的原因

前提

django 部署模式为 debug = False(debug = True 找不到静态文件基本是配置错误,去详细检查 settings.py 里的 STATIC_URL、STATICFILES_DIRS 配置)

现象

访问静态文件 网页状态码为:404

首先要用 F12,查看 静态文件的路由,然后用 这个路由 去 静态文件目录 找这个文件是否存在。

可能原因

  • Nginx 配置文件没有启用 root 用户(使用:user root;)
  • Nginx 配置静态文件路径没使用绝路径(如:/root/home/djangoprojects/djangoblog/static_root)
  • Nginx 配置静态文件路径没使用 django 项目的 settings.py 里的 STATIC_ROOT 指向的目录
  • Nginx 的配置规则屏蔽了 js、css 等结尾的静态文件
  • django 项目的 settings.py 里的 STATIC_ROOT 不是独立的目录,确保是独立的目录而不是 py 语句(如:STATIC_ROOT = 'static_root/' ,然后重新收集静态文件:python manage.py collectstatic)
  • django 项目的 settings.py 里的 STATIC_ROOT 指向的目录和文件权限不是当前用户的(授权:chmod -R 755 /root/home/djangoprojects/djangoblog)
  • 静态文件对应的路径下,文件不存在(路由没错,文件不存在,可能是没有收集到 static_root 目录下,重新收集静态文件:python manage.py collectstatic)
  • 静态文件对应的路由拼错了(路由错了,文件存在)

静态文件配置

静态文件管理官网文档

Nginx 下部署 django

        centos7 + virtualenv + django + uwsgi + nginx 部署站点

^_^
请喝咖啡 ×

本作品由 卓越笔记 采用 知识共享署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议 进行许可

前一篇: 用 django2, simpleUI, ckeditor 创建博客管理后台
下一篇: django 修改 favicon(站点配置 ico 、站点标签页配置小图标)