Solo quiero dejar caer el favicon.icostaticfiles colocarlo en mi directorio y luego hacer que aparezca en mi aplicación.
¿Cómo puedo lograr esto?
He colocado el favicon.icoarchivo en mi staticfilesdirectorio, pero no aparece y veo esto en mi registro:
127.0.0.1 - - [21/Feb/2014 10:10:53] "GET /favicon.ico HTTP/1.1" 404 -
Si voy http://localhost:8000/static/favicon.ico, puedo ver el favicon.

GET /favicon.icono estáGET /static/favicon.icobuscandohttp://localhost:8000/static/favicon.icono está relacionado. Parece que algunas solicitudes de navegadores/favicon.icodesprecian el HTML.Respuestas:
Si tiene una plantilla base o de encabezado que se incluye en todas partes, ¿por qué no incluir el favicon allí con HTML básico?
fuente
{{STATIC_URL}}favicon.icohref="{% static 'favicon.ico' %}sí lo hicieron.image/png) y el formato de archivo (favicon.ico) no coinciden.Un truco ligero es hacer una redirección en su
urls.pyarchivo, por ejemplo, agregar una vista como esta:Esto funciona bien como un truco fácil para que los favicons funcionen cuando realmente no tienes otro contenido estático para alojar.
fuente
En archivo de plantilla
Luego dentro de la
<head>etiquetaEsto supone que tiene archivos estáticos configurados adecuadamente en settings.py.
Nota : las versiones anteriores de Django usan
load staticfiles, noload static.fuente
Solución universal
Puede hacer que el favicon aparezca en Django de la misma manera que lo puede hacer en cualquier otro marco: solo use HTML puro.
Agregue el siguiente código al encabezado de su plantilla HTML.
Mejor, a su plantilla HTML base si el favicon es el mismo en su aplicación.
El código anterior supone:
Puede encontrar información útil sobre el soporte de formatos de archivo y cómo usar favicons en este artículo de Wikipedia https://en.wikipedia.org/wiki/Favicon .
Puedo recomendar usar
.pngpara la compatibilidad universal del navegador.EDITAR:
Como se publicó en un comentario,
"¡No olvides agregar la
{% load staticfiles %}parte superior de tu archivo de plantilla!"fuente
En su
settings.pyagregar un directorio raíz de archivos estáticos:Crear
/static/images/favicon.icoAgregue el favicon a su plantilla (base.html):
Y cree una redirección de URL
urls.pyporque los navegadores buscan un favicon en/favicon.icofuente
Simplemente agregue eso en su archivo base como la primera respuesta pero extensión ico y agréguelo a la carpeta estática
fuente
si tienes permiso entonces
agregue alias a su host virtual. (en el archivo de configuración de apache) de manera similar para robots.txt
fuente
La mejor solución es anular la plantilla Django base.html. Cree otra plantilla base.html en el directorio de administración. Haga un directorio de administrador primero si no existe.
app/admin/base.html.Agregar
{% block extrahead %}a la plantilla de anulación.fuente
También ejecute: python manage.py collectstatic
fuente
Probé las siguientes configuraciones en django 2.1.1
base.html
settings.py
Estructura de directorios del proyecto
ver en vivo aquí
fuente
Simplemente copie su favicon en: / yourappname / mainapp (ex: core) / static / mainapp (ex: core) / img
Luego vaya a su plantilla mainapp (ej: base.html) y simplemente copie esto, después de {% load static%} porque debe cargar primero las estadísticas.
fuente
Mejores prácticas :
Al contrario de lo que pueda pensar, el favicon puede ser de cualquier tamaño y de cualquier tipo de imagen. Siga este enlace para más detalles.
No poner un enlace a tu favicon puede ralentizar la carga de la página.
En un proyecto django, suponga que la ruta a su favicon es:
en sus plantillas de django (preferiblemente en la plantilla base), agregue esta línea al encabezado de la página:
Nota :
Suponemos que la configuración estática está bien configurada en settings.py.
fuente