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要添加一个参数:
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_tag

html
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>
原理:​
  1. 文件最开头导入sample_tag的static({% load static %})或staticfiles文件

  2. 调用的时候,获取static函数的返回值

  3. 后面再加上js文件的路径

  4. 不用再settings里添加参数








转载于:https://www.cnblogs.com/daliangtou/p/5305336.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值