• Django部署Nginx-静态文件配置


    django-部署nginx-静态文件配置

    nginx 配置静态文件路径

    • 创建新路径-主要存放Django所有静态文件 如: /home/jerome/项目名_static/

    • 在Django settings.py 中添加新配置

      STATIC_ROOT = '/home/jerome/项目名_static/static'
      # 此配置路径 存放所有正式环境中需要的静态文件
      
    • 进入项目,执行 python3 manage.py collectstatic

      执行该命令后,Django将项目中所有静态文件 复制到 STATIC_ROOT 中 ,包括Django内建的静态文件【如admin后台的样式】

    • Nginx配置中添加新配置

    # file : sudo vim /etc/nginx/nginx.conf
    # 新添加location /static 路由配置,重定向到指定的 第一步创建的路径即可
    server {
    ...
    location /static {
    # root 第一步创建文件夹的绝对路径,如:
    root /home/jerome/项目名_static;
    }
    ...
    }
    

    检查一下是否语法错误 sudo nginx -t

    重启 sudo service nginx restart/sudo /etc/init.d/nginx restart

    django 静态文件 部署到nginx服务器 相关问题

    项目目录下的 setting.py 文件

    STATIC_URL = "/static/"  表示在URL里通过static访问静态资源,django利用STATIC_URL来让浏览器可以直接访问静态文件。

    STATICFILES_DIRS

    STATICFILES_DIRS = (

    os.path.join(BASE_DIR, 'common_static'),

    )

    该条代码不是必须的,如果加上,则公共静态文件存放在 STATICFILES_DIRS目录下。

    STATIC_ROOT

    STATICFILES_ROOT = (

    os.path.join(BASE_DIR, 'static/'),

    )

    在部署的时候 执行collectstatic 命令后,会将项目中各个APP目录下的static文件夹以及STATICFILES_DIRS文件夹内的静态文件全部复制到 STATIC_ROOT 所指向的文件夹。

    一 、在开发时使用runserver 0.0.0.0:80 启动时,django寻找静态文件按以下顺序查找,查到了就不再继续往下查找:

    1、查找STATICFILES_DIRS对应的目录下的静态文件(如果设置了STATICFILES_DIRS)

    2、查找各APP目录下的Static文件夹下的静态文件

    二、使用Nginx + uWSGI 部署时,Nginx服务器接管了静态文件的响应,所以寻找静态文件的顺序为

    1、静态文件按照在Nginx 设置的静态目录下查找。

    Nginx 设置的静态目录
    总结、可以看出,当使用Nginx + uWSGI 部署时,就不再从STATICFILES_DIRS以及各APP目录下的Static文件夹中寻找静态文件了。而是直接从Nginx 设置的静态目录下查找,所以我们需要将所有的静态文件复制到Nginx 设置的静态目录下,庆幸的是,django有一个方便的做法,那就是设置好setting.py里的 STATIC_ROOT,然后在终端执行 python manage.py collectstatic,就将所有的静态文件全部复制到STATIC_ROOT目录下了。

  • 相关阅读:
    使用阿里云接口进行银行卡四要素实名认证
    使用阿里云接口进行银行卡三要素实名认证(阿里云api接口java)
    如何使用阿里云进行人脸和身份证头像验证比对(人证核验接口API)--java
    PHP语言对用户输入的身份证信息进行实名认证(api接口)
    Python 语言如何对身份证真实性进行实名认证(api接口)
    如何对网站用户进行实名认证
    PLSQL Developer 连接oracle(64)(instantclient_32)
    struts2的防止表单重复提交
    JSP静态化(伪静态)
    Jmeter中压力测试带验证码的登录功能
  • 原文地址:https://www.cnblogs.com/JeromeLong/p/13191733.html
Copyright © 2020-2023  润新知