Django 中加载静态文件(static)详解
加载静态文件的步骤如下:
1、首先确django.contrib.staticfiles已经添加到settings.INSTALLED_APPS中。
2、确保在settings.py 中设置了STATIC_URL
上面两条都是在创建Django项目的时候就自动给我们弄好了,只要我们没有改动它,就不用管。
3、在已经安装的app下创建一个static文件夹,然后再在这个static文件夹下创建一个当前app名字的文件夹,再把静态文件放在这个文件夹下。
4-1、在模板中使用load标签加载static 标签。
注意:{% load static %}需要放在html文件的head标签中,至少在使用static文件的上面。如果{% extends ‘xxx.html’%}标签和{% load static %}标签同时存在,{% extends ‘xxx.html’%}需要放在最上面,然后再放{% load static %}等标签。
如果不想每次在模板中加载静态文件都使用load加载static标签,那么可以在settings.py中的TEMPLATES添加
‘builtins’:[‘django.templatetags.static’],,这样以后在模板中就可以直接使用static标签,而不用手动的load了。
4-2、如果有一些静态文件是不和任何app有联系。即不在任何一个app的目录下。那么可以在settings.py中添加
STATICFILES_DIRS,以后DTL就会在这个列表的路径中查找静态文件。
静态资源的加载顺序:如果公共static(需要配置STATICFILES_DIRS)下不存在对应的文件,就按照settings.py中app注册的顺序查找。
例子:
1、在不同的文件夹下放相同的名称的图片,但内容不同。
2、视图函数、
3、 /loadpicture/urls.py
4、/templates/loadpicture/index2.html
5、启动Django,浏览器返回结果
在settings.py 文件中删除,下图红色框里的内容后,再启动Django。
结果:
加载图片的两种方式:
方式1:不修改setting.py文件,静态文件夹在app目录下。
在app目录下创建static文件夹存放图片,使用load标签加载静态文件。
加载图片可以不是使用这个标签,因为src属性里面是相对路径。
(非必须:load标签可以通过修改settings.py文件,省略不写)
方式2:修改settings.py文件,静态文件夹在项目目录下(公共静态文件)。