需求
引用静态文件的目录不写死
速查
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<scriptsrc="{{ 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",#添加此行],},},]原理:(源码)
1fromdjango.core.context_processorsimportstatic
12345defstatic(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里添加参数
