Django TemplateSyntaxError - 'staticfiles' не є зареєстрованою бібліотекою тегів


83

Після оновлення до 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' %}">

Відповіді:



11
  • Спробуйте {% 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')

1
Додавання STATICFILES_DIRS = [os.path.join (BASE_DIR, 'static')] вирішило проблему. До того, як я додавав каталог статичних файлів до DIRS всередині шаблонів, які не працювали. Дуже дякую!
k0rnik

1
Це слід позначити як правильну відповідь. Інші варіанти застаріли.
Alex8752

Чи працює частина CSS і в Windows 7 64bit? Я спробував те саме, але дав помилку
xxx

3

це спрацювало зі мною замінити {% load static from staticfiles %}на{% load static %}

де:

перейдіть у своє віртуальне середовище "venv" /lip/python3.X/site-packages/leaflet/templates/leaflet/admin/widget.html і все.HTML- файли в каталозі


1
Зміна файлів site-packages- погана ідея. У вашому випадку було б краще оновити django-flylet до нової версії, що підтримує Django 3.0+
Alasdair

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.