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

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

作者: 二月春风似剪刀 | 来源:发表于2019-05-27 10:14 被阅读0次

    项目目录下的 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目录下了。

    参考:https://www.cnblogs.com/horizonli/p/9214423.html

    参考:https://www.cnblogs.com/baby12138/p/10834067.html

    参考 :https://www.jb51.net/article/139718.htm

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/cnqctctx.html