django2 模板 static js设置
Invalid block tag on line 114: 'static'. Did you forget to register or load this tag?
最近在学习Django时有一个问题一直不清楚,那就是templates目录和static目录究竟有什么区别。经过查阅资料,总结出它们的不同:
1.templates目录是放html静态模板的,static目录是放css和js这些静态文件的。二者都是在settings.py中配置。
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', ], }, }, ]
# 指定加载静态文件的路径前缀 STATIC_URL = '/static/' # 静态文件加载路径 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
1.在模版中使用load
标签加载static
标签。比如要加载在项目的static
文件夹下的style.css
的文件。那么示例代码如下:
{% load static %} <link rel="stylesheet" href="{% static 'style.css' %}">
注意:
{% load static %}需要放在html的头部位置(至少在使用static标签的上面),一般都是放在html的最上面。如果{% extend %}标签和{% load static %}同时存在,{% extend %}需要放在最上面,然后再放{% load static %}等标签。