django2 模板 static js设置

发布时间 2023-03-22 21:17:14作者: 怪~咖
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 %}等标签。