Solo quiero dejar caer el favicon.ico
staticfiles
colocarlo en mi directorio y luego hacer que aparezca en mi aplicación.
¿Cómo puedo lograr esto?
He colocado el favicon.ico
archivo en mi staticfiles
directorio, 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.ico
no estáGET /static/favicon.ico
buscandohttp://localhost:8000/static/favicon.ico
no está relacionado. Parece que algunas solicitudes de navegadores/favicon.ico
desprecian 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.ico
href="{% 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.py
archivo, 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
.png
para 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.py
agregar un directorio raíz de archivos estáticos:Crear
/static/images/favicon.ico
Agregue el favicon a su plantilla (base.html):
Y cree una redirección de URL
urls.py
porque los navegadores buscan un favicon en/favicon.ico
fuente
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