На данный момент (Django 1.9 и ранее) {% load staticfiles %}
загружает templatetag static
из приложения Contrib, у которого есть больше возможностей, чем встроенный django.core.static
.
Самое важное отличие: staticfiles
может управлять файлами, хранящимися на CDN, поскольку его распознаватель может управлять хэшами, например. core.static
только добавить STATIC_URL
к статическому имени файла, который не является достаточно, если вы обрабатываете файлы (например, добавление md5 хэш кеш между выпусками)
Это различие связано с тем, что управление без локальных файлов для хранения был не предназначенный для включения в основной пакет Django, но по-прежнему полезен для многих разработчиков, которые будут реализованы в качестве официального пакета вклада. Поэтому, если вы начали использовать staticfiles
, вам приходилось не забывать использовать его в ваших шаблонах. НО, могут возникнуть некоторые проблемы, например, когда using Media
classes, поэтому решение состояло в том, чтобы объединить эти два templatetags в один и использовать другое поведение независимо от того, имеет ли разработчик django.contrib.staticfiles
в своем INSTALLED_APPS
или нет.
Из Django 1.10 and onwards (также see ticket in Django tracker), то {% load static %}
собирается использовать staticfiles
внутри если активирован (oherwise сохранить поведение по умолчанию), и templatetag в пакете CONTRIB устареет, чтобы избежать путаницы.
TL; DR
- Перед Джанго 1.10:
staticfiles
загружает templatetags, которые могут управлять нелокального хранения, где static
не может (или не легко);
- От Django 1.10:
contrib.staticfiles
приложение все еще существует, но его templatetags будут удалены только {% static %}
templatetags остается;
- От Django 2.0 (я считаю):
{% load staticfiles %}
удален.
В настоящем время, используйте staticfiles
templatetags, если вы используете соответствующее приложение вно (и вы знаете, почему вы не используете его) до тех пор, Django 1.10, в противном случае просто используйте static
.
Возможный дубликат [В чем разница между {% load staticfiles%} и {% load static%}] (http://stackoverflow.com/questions/24238496/what-is-the-difference-between-load -staticfiles-and-load-static) – dyeray
@dyeray Да, я прочитал это, но до сих пор не знаю, когда использовать, какой и какой человек используют в поле. мои работы для них обоих. сначала я думал, что загружает статическую папку, но она работает и для статических файлов ... –