Django的静态文件

官方文档

灵魂三问

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们已经构建了一个经过测试的web-poll测验应用程序,现在我们将添加一个样式表和一个图像。 除了由服务器生成的...
    Mlotjve阅读 1,865评论 0 0
  • 项目部署到阿里云(nginx+uwsgi)上后,静态文件加载没有问题。但是在本地,使用开发服务器,却始终加载不成功...
    兰山小亭阅读 10,922评论 0 9
  • 版权: https://github.com/haiiiiiyun/awesome-django-cn Aweso...
    若与阅读 23,340评论 3 241
  • Web框架之Django: (1)简介: Django是一个由Python写成开源的重量级Web应用框架,采用MT...
    老肖阅读 8,190评论 0 18
  • 这欺骗很“美” 那一年 我来到这里 第一眼 心便沉沦了 你美丽的身姿 让我魂牵梦萦 舍不得 我留下了 寻来海藻和木...
    倾漫阅读 3,318评论 4 3