Django--static静态文件引用
需求
引用静态文件的目录不写死
速查
settings.py
TEMPLATES--context_processors列表中加入:
1 | "django.core.context_processors.static" , |
html引用
1 | < script src = "{{ STATIC_URL }}js/jquery-2.1.4.min.js" ></ script > |
知识点
Django框架有自己设定的context值,并把他传入模板中进行渲染。
详细
静态文件目录以前在引用的时候是写死的:
1 | < script src = "/static/js/jquery-2.1.4.min.js" ></ script > |
在settings中已经定义了静态文件的目录:
1 | STATIC_URL = '/static/' |
所以,我们以后引用的时候,最好也去调用配置文件中的参数,方便未来的修改。
方法一:
利用Django框架自定义context值
html
1<
script
src
=
"{{ STATIC_URL }}js/jquery-2.1.4.min.js"
></
script
>
settings要添加一个参数:
1234567891011121314151617TEMPLATES
=
[
{
'BACKEND'
:
'django.template.backends.django.DjangoTemplates'
,
'DIRS'
: [os.path.join(BASE_DIR,
'templates'
)]
,
'APP_DIRS'
:
True
,
'OPTIONS'
: {
'context_processors'
: [
'django.template.context_processors.debug'
,
'django.template.context_processors.request'
,
'django.contrib.auth.context_processors.auth'
,
'django.contrib.messages.context_processors.messages'
,
"django.core.context_processors.static"
,
#添加此行
],
},
},
]
原理:(源码)
1from
django.core.context_processors
import
static
12345def
static(request):
"""
Adds static-related context variables to the context.
"""
return
{
'STATIC_URL'
: settings.STATIC_URL}
方法二:
利用sample_tag
html
123456{% load staticfiles %}
<html lang=
"en"
>
<head></head>
<body>
<script src=
"{% static "
js/jquery-
2.1
.
4
.min.js
" %}"
></script>
</body>
原理:
文件最开头导入sample_tag的static({% load static %})或staticfiles文件
调用的时候,获取static函数的返回值
后面再加上js文件的路径
不用再settings里添加参数
![](https://images2015.cnblogs.com/blog/827870/201603/827870-20160322110951854-1918323944.png)