django STATIC_URL STATIC_ROOT STATICFILES_DIRS 个人理解

STATIC_URL , django 创建的时候就有用来存放app静态资源

STATICFIELS_DIR 是一个公共通用静态文件,就是app外的公共资源
如果想要我们的Ap能够调用这些公共资源就需要配置这个STATICFIELS_DIR
STATICFILES_DIRS告诉django,首先到STATICFILES_DIRS里面寻找静态文件,其次再到各个app的static文件夹里面找(注意, django查找静态文件是惰性查找,查找到第一个,就停止查找了)

部署的时候就需要STATIC_ROOT

STATIC_ROOT ,在python manage collectstatic 之后,会把所有的静态文件都(映射)复制到这个 static_all 文件夹,包括STATICFILES_DIRS中的资源,
最佳的配置方式是将所有的App 下面的静态文件统一放置到一个目录下面,然后将该目录设置为STATICFILES_DIRS,而 STATIC_ROOT则设置为另外的目录:

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static_all')

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]
静态文件有私有static 也有共有的static 

nginx.conf 中的配置

location /static {
            # 所有的静态文件都会在 STATIC_ROOT 这个目录下获取
            alias /home/liuyang/Web_Project/Data_Web/For_Cli/static;

参考:
https://blog.csdn.net/u013967628/article/details/83350741
https://www.cnblogs.com/shengulong/p/10322055.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章