静态文件是通过django.contrib.staticfiles
来管理的。
配置Django静态文件,Djang官网静态文件配置介绍。简言之,通过以下三个步骤来配置和加载静态文件:
- 设置静态文件别名
- 设置静态文件路径
- 加载静态文件
- 不同app下的静态文件配置
设置静态文件别名
在settings.py
文件中设置静态文件的url(此处的url是用于在templates中加载),即别名,通过别名的动态加载实现静态文件的加载,通常Django已经设置好了。
# define static files url,即定义静态文件的别名
STATIC_URL = '/static/'
设置静态文件路径
在settings.py
文件中设置静态文件的路径,这里设置的是存放的静态文件的文件夹的路径。可以实现多个静态文件夹的设置。
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
os.path.join(BASE_DIR, 'bootstrap-3.3.7'),
]
加载静态文件
在templates的html文件中通过动态加载别名来加载静态文件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>home page test static files</title>
{% load static %}
<link rel="stylesheet" href="https://my.oschina.net/static/css/bootstrap.css"> <!-- 普通加载 -->
<link rel="stylesheet" href="{% static 'css/login.css' %}"> <!-- 动态加载 -->
<link rel="stylesheet" href="{% static 'css/blog.css' %}">
<script src="{% static 'js/bootstrap.js' %}"></script>
</head>
不同app下的静态文件配置
static文件夹写在不同的app下,静态文件的路由设置是在前边再加一个别名,后边加入app的名字个经该app下的静态文件名:
STATIC_URL = '/static/'
STATICFILES_DIRS=(
('endpoint',os.path.join(BASE_DIR,"tutorials","statics")) ,
)
#<script src="https://my.oschina.net/static/endpoint/jquery-1.8.2.min.js"></script>