Django的静态文件
2018-11-16 本文已影响0人
Pope_Li
灵魂三问
1.什么是静态文件
除了由服务器生成的HTML文件外,网页应用一般需要提供其它必要的文件 —— 比如图片文件、JavaScript脚本和CSS样式表 —— 来为用户呈现出一个完整的网站。 在Django中,我们将这些文件称为“静态文件”。
2.为什么要使用静态文件
把静态文件的路径改成动态拼接的,避免在HTML页面中硬编码静态文件的导入路径.
3.如何使用静态文件
一般我们使用静态文件都会把文件放在
static
文件里边,并且在setting.py
文件里边配置(配置方法)
静态文件相关(动态配置)
当你把储存静态文件的包改名字的时候,在HTML文档里边的所有需要静态文件的路径都得重新改这就很麻烦,这个时候我们可以采用下边的方法来解决:
{% load static %}导入静态文件模块
首先呢我们需要导入Django内置的static模块,在执行的时候它会去找setting.py文件里边的装静态文件的包是什么名字.
静态文件
导入方法:
{% load static %}
<img src="{% static "images/hi.jpg" %}" alt="Hi!" />
引用JS文件:
{% load static %}
<script src="{% static "mytest.js" %}"></script>
某个文件多处被用到可以存为一个变量
{% load static %}
{% static "images/hi.jpg" as myphoto %}
<img src="{{ myphoto }}"></img>
{% get_static_prefix %}手动拼接
先获取静态文件包的别名然后再拼接静态文件(一般不使用这个)
{% load static %}
<img src="{% get_static_prefix %}images/hi.jpg" alt="Hi!" />
补充
{% load static %}方法说白了就是一个Django设置好的一个tag,我们也可以自己定义一个tag,达到一样的作用(如何自定义tag)
from django import template
from django.conf import settings
# 生成一个注册的实例对象
register = template.Library()
@register.simple_tag(name="static") # name可以自定义
def my_static(s):
# 1.取到settings.py文件里的STATIC_URL的值
s1 = settings.STATIC_URL
# 2. 进行字符串拼接
ret = s1 + s
# 3. 返回
return ret