Я просто хочу поместить его favicon.ico
в свой staticfiles
каталог, а затем показать его в моем приложении.
Как я могу этого добиться?
Я поместил favicon.ico
файл в свой staticfiles
каталог, но он не отображается, и я вижу это в своем журнале:
127.0.0.1 - - [21/Feb/2014 10:10:53] "GET /favicon.ico HTTP/1.1" 404 -
Если я перейду на http://localhost:8000/static/favicon.ico
, я увижу значок.
GET /favicon.ico
не вGET /static/favicon.ico
поискеhttp://localhost:8000/static/favicon.ico
не связана. Похоже, что некоторые браузеры запрашивают/favicon.ico
помимо HTML.Ответы:
Если у вас есть базовый шаблон или шаблон заголовка, который включен повсюду, почему бы не включить туда значок с базовым HTML?
<link rel="shortcut icon" type="image/png" href="{% static 'favicon.ico' %}"/>
источник
{{STATIC_URL}}favicon.ico
href="{% static 'favicon.ico' %}
.image/png
) и формат файла (favicon.ico
) не совпадают.Один легкий трюк - сделать перенаправление в вашем
urls.py
файле, например, добавить такое представление:from django.views.generic.base import RedirectView favicon_view = RedirectView.as_view(url='/static/favicon.ico', permanent=True) urlpatterns = [ ... re_path(r'^favicon\.ico$', favicon_view), ... ]
Это хорошо работает как простой способ заставить работать значки, когда у вас действительно нет другого статического контента для размещения.
источник
url='/static/favicon.ico'
должны строиться динамически, вроде какurl=settings.STATIC_URL + 'favicon.ico'
? Если я правильно понимаю, предлагаемое решение будет работать только по назначению, когда у нас есть файл settings.pySTATIC_URL='/static/
.В файле шаблона
{% load static %}
Затем в
<head>
теге<link rel="shortcut icon" href="{% static 'favicon.ico' %}">
Это предполагает, что у вас есть статические файлы, правильно настроенные в settings.py.
Примечание : старые версии использования Django
load staticfiles
, а неload static
.источник
Универсальное решение
Вы можете получить значок в Django так же, как и в любом другом фреймворке: просто используйте чистый HTML.
Добавьте следующий код в заголовок вашего HTML-шаблона.
Лучше использовать ваш базовый HTML-шаблон, если значок во всем приложении одинаков.
<link rel="shortcut icon" href="{% static 'favicon/favicon.png' %}"/>
Предыдущий код предполагает:
Вы можете найти полезную информацию о поддержке форматов файлов и использовании значков в этой статье Википедии https://en.wikipedia.org/wiki/Favicon .
Я могу рекомендовать использование
.png
для универсальной совместимости с браузером.РЕДАКТИРОВАТЬ:
Как написано в одном комментарии,
«Не забудьте добавить
{% load staticfiles %}
в начало файла шаблона!»источник
В вашем
settings.py
добавлении корневой каталог staticfiles:STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
Создайте
/static/images/favicon.ico
Добавьте значок в свой шаблон (base.html):
{% load static %} <link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/>
И создайте перенаправление URL-адреса,
urls.py
потому что браузеры ищут значок в/favicon.ico
from django.contrib.staticfiles.storage import staticfiles_storage from django.views.generic.base import RedirectView urlpatterns = [ ... path('favicon.ico', RedirectView.as_view(url=staticfiles_storage.url('images/favicon.ico'))) ]
источник
<link rel="shortcut icon" href="{% static 'favicon/favicon.ico' %}"/>
Просто добавьте это в базовый файл ur, как первый ответ, но с расширением ico, и добавьте его в статическую папку
источник
если у вас есть разрешение тогда
Alias /favicon.ico /var/www/aktel/workspace1/PyBot/PyBot/static/favicon.ico
добавьте псевдоним к вашему виртуальному хосту. (в файле конфигурации apache) аналогично для robots.txt
Alias /robots.txt /var/www/---your path ---/PyBot/robots.txt
источник
Лучшее решение - переопределить шаблон Django base.html. Создайте еще один шаблон base.html в каталоге администратора. Сначала создайте административный каталог, если он не существует.
app/admin/base.html.
Добавить
{% block extrahead %}
в шаблон переопределения.{% extends 'admin/base.html' %} {% load staticfiles %} {% block javascripts %} {{ block.super }} <script type="text/javascript" src="{% static 'app/js/action.js' %}"></script> {% endblock %} {% block extrahead %} <link rel="shortcut icon" href="{% static 'app/img/favicon.ico' %}" /> {% endblock %} {% block stylesheets %} {{ block.super }} {% endblock %}
источник
<link rel="shortcut icon" type="image/png" href="{% static 'favicon/sample.png' %}" />
Также запустите: python manage.py collectstatic
источник
Я пробовал следующие настройки в django 2.1.1
base.html
<head> {% load static %} <link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/> </head>
settings.py
STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATIC_URL = '/static/'` <br>`.............
Структура каталога проекта
смотреть в прямом эфире здесь
источник
Просто скопируйте свой значок на: / yourappname / mainapp (например: ядро) / static / mainapp (например: ядро) / img
Затем перейдите к шаблону mainapp (например, base.html) и просто скопируйте его после {% load static%}, потому что вы должны сначала загрузить статику.
<link href="{% static 'core/img/favi_x.png' %}" rel="shortcut icon" type="image/png" />
источник
Лучшие практики :
Вопреки тому, что вы думаете, значок может быть любого размера и любого типа изображения. Перейдите по этой ссылке для получения подробной информации.
Отсутствие ссылки на ваш значок может замедлить загрузку страницы.
Предположим, что в проекте django путь к вашему значку:
myapp/static/icons/favicon.png
в ваших шаблонах django (желательно в базовом шаблоне) добавьте эту строку в заголовок страницы:
<link rel="shortcut icon" href="{% static 'icons/favicon.png' %}">
Заметка :
Мы полагаем, что статические настройки хорошо настроены в settings.py.
источник
Наткнулся на это в поисках помощи. Я пытался реализовать значок в моем проекте Django, но он не отображался - хотел добавить к разговору.
Пытаясь реализовать значок в моем проекте Django, я переименовал файл «favicon.ico» в «my_filename.ico» - изображение не отображалось. После переименования в «favicon.ico» проблема была решена, и отображалась графика. ниже приведен код, решивший мою проблему:
<link rel="shortcut icon" type="image/png" href="{% static 'img/favicon.ico' %}" />
источник