Django TemplateSyntaxError - 'staticfiles' không phải là thư viện thẻ đã đăng ký


83

Sau khi nâng cấp lên Django 3.0, tôi nhận được những điều sau 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

Đây là mẫu của tôi

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

Câu trả lời:



9
  • Hãy thử {% load static %}thay vì{% load staticfiles %}
  • Nếu hiệu ứng của CSS hoặc bất kỳ tệp nào khác không phản ánh trong mẫu của bạn thì bạn cũng hãy viết các dòng sau vào cuối settings.pytệp của bạn
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
Thêm STATICFILES_DIRS = [os.path.join (BASE_DIR, 'static')] đã giải quyết được vấn đề. Trước khi tôi thêm thư mục tệp tĩnh vào DIRS bên trong các mẫu không hoạt động. Cảm ơn nhiều!
k0rnik

Đây phải được gắn thẻ là câu trả lời đúng. Các tùy chọn khác hiện đã bị hủy bỏ.
Alex8752

Phần CSS có hoạt động trong windows 7 64bit không? Tôi đã thử tương tự nhưng gặp lỗi
xxx

3

cái này làm việc với tôi thay thế {% load static from staticfiles %}bằng{% load static %}

Ở đâu :

vào môi trường ảo "venv" /lip/python3.X/site-packages/leaflet/templates/leaflet/admin/widget.html và tất cả. Tệp HTML trong thư mục


1
Thay đổi tệp trong site-packageslà một ý tưởng tồi. Trong trường hợp của bạn, nó sẽ là tốt hơn để nâng cấp django-tờ rơi lên một phiên bản mới hơn hỗ trợ Django 3.0+
Alasdair

0

Điều này làm việc cho tôi bằng cách sử dụng django 3.1.4. {% tải tĩnh%}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.