128

升级到 Django 3.0 后,我得到以下信息TemplateSyntaxError

In template /Users/alasdair//myproject/myapp/templates/index.html, error at line 1
'staticfiles' is not a registered tag library. Must be one of: admin_list admin_modify admin_urls cache i18n l10n log static tz

这是我的模板

{% load staticfiles %}
<img src="{% static 'my_image.html' %}">
4

6 回答 6

303

如果您的模板中有以下任何标签:

{% load staticfiles %}
{% load static from staticfiles %}
{% load admin_static %}

然后将其替换为:

{% load static %}

您必须进行此更改,因为{% load staticfiles %}在 Django 2.1 中已弃用{% load admin_static %},并在 Django 3.0 中删除

于 2019-04-30T22:31:46.673 回答
18
  • 尝试{% load static %}代替{% load staticfiles %}
  • 如果 CSS 或任何其他文件的效果没有反映在您的模板中,那么还要在settings.py文件末尾写下以下行
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
VENV_PATH = os.path.dirname(BASE_DIR)
STATIC_ROOT = os.path.join(VENV_PATH, 'static_root')
于 2020-07-19T10:46:33.547 回答
16

将静态文件注册到标签库

静态文件已更改为静态

您可以在您的settings.py

在您的模板设置中添加此代码:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        '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',
            ],
            'libraries' : {
                'staticfiles': 'django.templatetags.static', 
            }
        },
    },
]

注意你可以找到你没有的图书馆

于 2021-06-12T20:22:42.250 回答
6

这对我使用 django 3.1.4 有效。

{% load static %}
<link rel"stylesheet" href = "{% static 'style.css' %}">
于 2020-12-21T07:12:12.073 回答
3

这对我有用,替换{% load static from staticfiles %}{% load static %}

在哪里 :

转到您的虚拟环境“venv”/lip/python3.X/site-packages/leaflet/templates/leaflet/admin/widget.html 和所有 . 目录中的HTML文件

于 2020-07-13T17:34:53.980 回答
0

我的问题出在此处文档的第 4 步:https ://docs.djangoproject.com/en/3.2/howto/static-files/

“4. 将您的静态文件存储在应用程序中名为 static 的文件夹中。例如 my_app/static/my_app/example.jpg。”

一旦我纠正了我的目录结构以匹配所有工作。

于 2021-08-18T20:19:07.563 回答