程序员WEB前端后端

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
上一篇下一篇

猜你喜欢

热点阅读