Django---静态文件配置

我们将 HTML 文件默认放在templates文件夹下;将网站所使用的的静态文件放在static文件夹下。

静态文件:前端已经写好的,能够直接调用的文件

已经写好的网站 js 文件、CSS 文件、图片文件、第三方的前端框架

Django 是不会自动创建static文件夹的,需要我们手动创建,这里不需要将文件

在这里插入图片描述

可以直接将第三方框架直接放入 static文件夹下,也可以再建一个other文件夹存放。

静态文件资源接口配置

普通的功能接口,需要在urls.py中先做路由与视图的关联,再在视图层中写功能;

静态文件资源的配置就不需要那么麻烦!

settings.py文件中需要手动书写配置,注意变量名全大写

# 拼接 static 文件夹路径,并且放入列表中
STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static'),
  os.path.join(BASE_DIR, 'static1'),
  os.path.join(BASE_DIR, 'static2'),
]

静态文件接口请求原理

settins.py中,我们能够发现一个变量STATIC_URL

STATIC_URL = '/static/'

那么这里的'/static/'和我们手写的配置中最终拼接的static文件夹名有何关联呢?

对于我们拼接出的STATICFILES_DIR中的路径来说,毫无疑问的,就是静态文件所处的路径!

对于STATIC_URL来说,后面的'/static/'相当于一种访问令牌,即 当访问的 URL 路径中包含了'/static/'时,Django 会自动地将URL 路径'/static/'后的字符 当做资源来查找,查找的路径就是我们手写STATICFILES_DIR列表中的路径,并且顺序是从前到后,查找到会立即返回,不会继续查找

也就意味着STATIC_URL 可以随意修改,只要在请求资源的时候,按照修改后的方式,再加上资源名,同样可以请求到

静态文件实例

settins.py

STATIC_URL = '/static/'

STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static'),
  os.path.join(BASE_DIR, 'static1'),
  os.path.join(BASE_DIR, 'static2'),
]

static文件夹a.txt

from static

static1文件夹a.txt

from static1

static2文件夹a.txt

from static2

启动 Django 项目,并且请求资源

在这里插入图片描述

调换一下顺序, 并且修改一下令牌

STATIC_URL = '/xxx/'

STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static2'),
  os.path.join(BASE_DIR, 'static1'),
  os.path.join(BASE_DIR, 'static'),
]

在这里插入图片描述

HTML 文件动态解析静态文件路径

在 HTML 文件中,需要导入的静态文件很多的时候,如果修改了STATIC_URL,那么每一个静态文件路径的前缀都要修改,十分麻烦

在这里插入图片描述

动态解析语法

	{% load static %}
	<link rel="stylesheet" href="{% static ‘文件名’ %}">
	<script src="{% static ‘文件名’ %}"></script>

文件名会从STATICFILES_DIRS的路径中依次寻找

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值