本来以为静态文件设置搞懂了,结果弄到快要部署阶段了,发现完全没懂,看了一晚上文档,记录一下
首先,关于STATIC的设置,都是在项目的settings里面的
1: STATIC_URL
这个设置的其实是路由,比如我目前的项目里面
STATIC_URL='/static/'
这样我再前端面板里面如果写成下面这种结构,就可以直接访问目标文件了
<img id="first_social_icon" src="{% static 'mainpage_img/github.jpg' %}"/>
这个STATIC_URL的设置就是上述链接里面的static
2: STATICFILES_DIRS
原来我一直以为这个是存放static文件的路径指示设置。
但是看了文档以后发现,这个只是一个额外附加出来的存放static文件的地方,特别用于开发过程中。
也就是什么意思呢,正常来说,我有5个app,每个app下面都会放一个static文件夹,以存放对这个app有关系的文件,但是我还是可以另外单独设置一些文件夹,放其他我想放的文件。
3: STATICFILES_FINDERS
上面文档里面提到了STATICFILES_FINDERS,这个其实就是设置寻找static文件的顺序。
4: STATIC_ROOT
这个设置在开发过程中没有使用的必要,这个主要用于部署时候的静态文件采集
你可以使用collectstatic来进行收集所有的静态文件,如下面文档所述
5:自我测试部分
先看一下我在开发环境中关于静态文件的设置
settings文件内的设置
这一段设置表示,我在根目录下的static文件夹内存放静态文件
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
来看一下文件结构
我们来看一下,如果我把STATICFILES_DIRS这个设置给屏蔽了
,Django是否真的会去每个app里查找对应的静态文件。
虽然我们把STATICFILES_DIR设置对应文件里面的内容给屏蔽了,但是django还是通过app内的static文件夹找到了文件,可以使用
但是因为bootstrap和css及js文件无法使用,所以页面整体框架就没了。