需求
引用静态文件的目录不写死
速查
settings.py
TEMPLATES--context_processors列表中加入:
1 |
|
html引用
1 |
|
知识点
Django框架有自己设定的context值,并把他传入模板中进行渲染。?
详细
静态文件目录以前在引用的时候是写死的:
1 |
|
在settings中已经定义了静态文件的目录:
1 |
|
所以,我们以后引用的时候,最好也去调用配置文件中的参数,方便未来的修改。
方法一:
利用Django框架自定义context值
html
1 |
< script src = "{{ STATIC_URL }}js/jquery-2.1.4.min.js" ></ script >
|
settings要添加一个参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
TEMPLATES = [
{
‘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" , #添加此行
],
},
},
]
|
原理:(源码)?
1 |
from django.core.context_processors import static
|
1 2 3 4 5 |
def static(request):
"""
Adds static-related context variables to the context.
"""
return { ‘STATIC_URL‘ : settings.STATIC_URL} ?
|
方法二:
利用sample_taghtml
1 2 3 4 5 6 |
{% 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里添加参数
时间: 2024-10-24 15:14:25