当前位置:   article > 正文

Django的STATIC_URL、STATIC_ROOT、STATICFILES_DIRS、MEDIA_URL、MEDIA_ROOT意义、设置和使用

static_root

以下经验是在Django2.1.1及Python3.5环境下(项目目录结构见结尾

 

1.STATIC_ROOT

首先,要有Django的开发模式和部署模式的概念(目前知道有这种东西就行,我也没用过,或者用过不知道)。

通常情况下我们是在开发模式下(Debug=True),我们可以创建project,project下放着我们建立的app。如果此时,你的static静态文件夹是放在app目录下,那么开发模式下,Django将会自动查找每个app下的静态文件并在网页中显示。(但我自己再做Django项目的时候,我的static文件是放置在了project目录下,所以我没有对这个解释进行验证)

在部署模式下,我们需要运行python manage.py collectstatic这个命令(在manage.py同级目录下运行),这个命令会把每个app目录下的文件copy到STATIC_ROOT这个文件夹下。此时为部署模式(Debug=False),如果想要通过http://127.0.0.1/static/***访问,将不会访问各个app下的static,而是STATIC_ROOT中所指定的文件夹(当然想要通过url访问,这里还少了对static_url的配置,后面会提到)

2.STATICFILES_DIR

对于STATICFILES_DIR,个人有过使用。举例:我在project下设置了一个名为static的文件夹,但不是说你在project下起名为static,Django就可以识别出它是一个静态文件夹,要告诉它,怎么告诉?答:settings中设置STATICFILES_DIR

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

(这句代码如果看不懂,那就没办法了)至于在HTML用这个文件夹,到目前介绍的这两个东西是做不到的

3.STATIC_URL

根据我做了两个半生不熟Django项目的经验,个人认为它是一个代号,对STATIC_ROOT和STATICFILES_DIR的引用,相当于一个别名,具体怎么讲呢?

首先settings.py

STATIC_URL = '/static/'  #这个static纯属碰巧
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/489526
推荐阅读
相关标签
  

闽ICP备14008679号