Favicon (сокр. от англ. FAVorite ICON — «значок для избранного») — значок веб-сайта или веб-страницы. Отображается браузером во вкладке перед названием страницы, и в качестве картинки рядом с закладкой, а также в адресной строке в некоторых браузерах. (c) wikipedia.org
Каждый веб-сайт должен иметь иконку, которая передаёт настроение сайта (или нет), большинство браузеров ожидает найти favicon.ico в корневом каталоге вашего веб-сайта (/favicon.ico). Самый простой способ использовать статические файлы, но в Django обычно мы используем поддиректорию для доступа к ним (/static).
В этом руководстве мы настроим Django для отображения favicon.ico.
Есть три простых способа для отображения favicon.ico:
1. Добавить HTML тег, который указывает адрес нашей иконки
2. Добавить иконку, как отображение, зарегистрировав RedirectView
3. Обработать адрес /favicon.ico на уровне Nginx (или ему подобных)
1. Используем HTML
1.1. Добавляем нашу иконку в static файлы
1.2. Добавляем значок в head заголовка нашего базового шаблона:
{% load static %} <link rel="icon"href="{% static 'favicon.ico' %}">
Всё готово, иконка подключена.
2. Добавляем иконку как RedirectView
2.1. Добавляем нашу иконку в static файлы
2.2. Добавляем наше представление в файл urls.py.
Код достаточно прост, нужно просто сделать редирект с /favicon.ico на статический файл нашей иконки.
# urls.py from django.contrib.staticfiles.storage import staticfiles_storage from django.urls import path from django.views.generic.base import RedirectView urlpatterns = [ # ... path( "favicon.ico", RedirectView.as_view(url=staticfiles_storage.url("favicon.ico")), ), ]
Всё, иконка отображается.
3. Обрабатываем через http сервер.
3.1. Кладём нашу иконку куда-нибудь на сервер
3.2. Редактируем конфигурационный файл
Используя директиву location, которая устанавливает конфигурацию в зависимости от URI запроса, мы определяем директиву для доступа к файлу favicon.ico.
В конфигурации веб-сервера nginx пишем:
location /favicon.ico { alias /staticfiles/favicon.ico; }
Всё готово!