Django : favicon.ico : comment le gérer facilement
En mode débug, un serveur Django renvoie tous les fichiers, y compris les fichiers statique. Seul problème : tous les fichiers statique on leur URL qui commence par /static/
.
Mais on rencontre un problème : le favicon.ico
n’est pas un fichier statique “normal” = qui commence par /static/
. C’est un nom “en dur”, qui ressemble à http://monsite/favicon.ico
.
Il vous faut donc la coder en dur dans les URLs : ainsi : url(r'^favicon.ico/$',...)
Et pour renvoyer directement le contenu, il suffit de faire une fonction immédiate (= lambda
) qui renvoie directement le contenu :
urlpatterns = [
# ...blabla... all path and now:
url(r'^public/(?P
'document_root': settings.MEDIA_ROOT
}, name='url_public'),
url(r'^favicon.ico/$', # google chrome favicon fix :
lambda x: HttpResponseRedirect(settings.STATIC_URL+'favicon.ico')),
]