django的奇技淫巧工作生活

Django 静态文件 static file

2019-07-04  本文已影响0人  AllenBigBear

本来以为静态文件设置搞懂了,结果弄到快要部署阶段了,发现完全没懂,看了一晚上文档,记录一下

首先,关于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文件的顺序。


搜索static顺序

4: STATIC_ROOT

这个设置在开发过程中没有使用的必要,这个主要用于部署时候的静态文件采集
你可以使用collectstatic来进行收集所有的静态文件,如下面文档所述


部署时候使用

5:自我测试部分

先看一下我在开发环境中关于静态文件的设置

settings文件内的设置
这一段设置表示,我在根目录下的static文件夹内存放静态文件

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

来看一下文件结构

文件结构

我们来看一下,如果我把STATICFILES_DIRS这个设置给屏蔽了,Django是否真的会去每个app里查找对应的静态文件。

在app下面设置同样的静态文件

虽然我们把STATICFILES_DIR设置对应文件里面的内容给屏蔽了,但是django还是通过app内的static文件夹找到了文件,可以使用
但是因为bootstrap和css及js文件无法使用,所以页面整体框架就没了。


图片还是能够正常显示出来
上一篇 下一篇

猜你喜欢

热点阅读