Je veux simplement déposer le favicon.ico
dans mon staticfiles
répertoire, puis le faire apparaître dans mon application.
Comment puis-je accomplir cela?
J'ai placé le favicon.ico
fichier dans mon staticfiles
répertoire, mais il n'apparaît pas et je vois ceci dans mon journal:
127.0.0.1 - - [21/Feb/2014 10:10:53] "GET /favicon.ico HTTP/1.1" 404 -
Si je vais à http://localhost:8000/static/favicon.ico
, je peux voir le favicon.
GET /favicon.ico
neGET /static/favicon.ico
regarde pas danshttp://localhost:8000/static/favicon.ico
n'est pas liée. Il ressemble à certaines demandes de navigateurs pour/favicon.ico
le HTML.Réponses:
Si vous avez un modèle de base ou d'en-tête qui est inclus partout, pourquoi ne pas y inclure le favicon avec du HTML de base?
la source
{{STATIC_URL}}favicon.ico
href="{% static 'favicon.ico' %}
fait.image/png
) et le format de fichier (favicon.ico
) ne correspondent pas.Une astuce légère consiste à faire une redirection dans votre
urls.py
fichier, par exemple ajouter une vue comme ceci:Cela fonctionne bien comme une astuce facile pour faire fonctionner les favicons lorsque vous n'avez pas vraiment d'autre contenu statique à héberger.
la source
Dans le fichier modèle
Puis dans la
<head>
baliseCela suppose que vous ayez des fichiers statiques configurés de manière appropriée dans settings.py.
Remarque : les anciennes versions de Django utilisent
load staticfiles
, nonload static
.la source
Solution universelle
Vous pouvez afficher le favicon dans Django de la même manière que vous pouvez le faire dans n'importe quel autre framework: utilisez simplement du HTML pur.
Ajoutez le code suivant à l'en-tête de votre modèle HTML.
Mieux, à votre modèle HTML de base si le favicon est le même dans votre application.
Le code précédent suppose:
Vous pouvez trouver des informations utiles sur la prise en charge du format de fichier et sur l'utilisation des favicons dans cet article de Wikipedia https://en.wikipedia.org/wiki/Favicon .
Je peux recommander l'utilisation
.png
pour la compatibilité universelle du navigateur.EDIT:
Comme publié dans un commentaire,
"N'oubliez pas d'ajouter
{% load staticfiles %}
en haut de votre fichier de modèle!"la source
Dans votre
settings.py
répertoire add a root staticfiles:Créer
/static/images/favicon.ico
Ajoutez le favicon à votre modèle (base.html):
Et créez une redirection d'URL dans
urls.py
car les navigateurs recherchent un favicon dans/favicon.ico
la source
Ajoutez simplement cela dans votre fichier de base comme première réponse mais l'extension ico et ajoutez-le au dossier statique
la source
si vous avez la permission alors
ajoutez un alias à votre hôte virtuel. (dans le fichier de configuration Apache) de même pour robots.txt
la source
La meilleure solution est de remplacer le modèle Django base.html. Créez un autre modèle base.html dans le répertoire admin. Créez d'abord un répertoire d'administration s'il n'existe pas.
app/admin/base.html.
Ajouter
{% block extrahead %}
au modèle de remplacement.la source
Exécutez également: python manage.py collectstatic
la source
J'ai essayé les paramètres suivants dans django 2.1.1
base.html
settings.py
Structure du répertoire du projet
voir en direct ici
la source
Copiez simplement votre favicon sur: / yourappname / mainapp (ex: core) / static / mainapp (ex: core) / img
Ensuite, allez dans votre modèle mainapp (ex: base.html) et copiez-le simplement après {% load static%} car vous devez d'abord charger les statiques.
la source
Les meilleures pratiques :
Contrairement à ce que vous pensez, le favicon peut être de n'importe quelle taille et de n'importe quel type d'image. Suivez ce lien pour plus de détails.
Ne pas mettre de lien vers votre favicon peut ralentir le chargement de la page.
Dans un projet django, supposons que le chemin vers votre favicon soit:
dans vos templates django (de préférence dans le template de base), ajoutez cette ligne en tête de page:
Remarque :
Nous supposons que les paramètres statiques sont bien configurés dans settings.py.
la source