Тег {% static %} в Django
У вас на локальной машине статика может раздаваться по адресу /static/, но на сервере этот адрес часто меняется. Бывает что статика переезжает на другой сервер (CDN) или разработчики решают экономить на длине адреса и перевешивают статику на /s/.
Код надо писать так, чтобы адрес статики менялся одной настройкой в settings.py.
Что он делает
Тег {% static %} генерирует адрес на статику, например:
<img src="{% static 'images/hi.jpg' %}" />
Если в settings.py указано, что STATIC_URL ='/static/', то рендеринг шаблона приведёт к такому результату:
<img src="/static/images/hi.jpg" />
Тег {% static %} просто подставил в начало адреса /static/. Он подставляет STATIC_URL к адресу, который вы передадите.
Чтобы воспользоваться тегом {% static %}, добавьте {% load static %} в начало документа, без этого он не будет работать:
<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8">
...
</head>
<body>
<img src="{% static 'images/hi.jpg' %}" />
...
</body>
</html>