Django的STATIC_ROOT、STATIC_URL以及STATICFILES_DIRS

STATIC_ROOT :

部署django项目的时候需要用到STATIC_ROOT

它是收集所有的静态文件(执行python manage.py collectstatic)

并放在一个目录里,即STATIC_ROOT指向的目录里:

#the dir for command "python manage.py collectstatic"
STATIC_ROOT = os.path.join(BASE_DIR, "collect_static")

#locate the common static files
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'common_static')
]

STATICFILES_DIRS:

Django如果有多个App应用,可以把几个应用的静态文件放到一个公共的目录。

STATICFILES_DIRS就是设置这个共用目录的,让应用程序先到STATICFILES_DIRS设置的共用目录里查

找,如果没找到再去STATIC_ROOT设置的目录查找。

在开发阶段Django把/static 映射到django.contrib.staticfiles这个App,django.contrib.staticfiles自动地从STATICFILES_DIRS、STATIC_ROOT以及各个App的static子目录里面搜索静态文件。

一旦部署到开发环境上,settings.py不需要重新编写,只要在Nginx的配置文件里面写好映射,/static将会被Nginx处理。

django.contrib.staticfiles虽然仍然存在,但因为不会接收到以/static/开始的路径,所以将不会产生作用。不必担心Django会使处理速度变慢。

当settings.DEBUG is False的时候,staticfiles将自动关闭。

STATIC_URL

Django通过STATIC_URL配置映射,让浏览器可以直接访问静态文件。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。