Como colocar um favicon em um website que utiliza Django?
O que imediatamente vem a mente de qualquer desenvolvedor é que basta adicionarmos uma configuração no arquivo urls.py e tudo estará certo. E é realmente isso que alguns blogs recomendam ser feito.Teríamos um fonte parecido com este:
#urls.py import os from django.conf import settings from django.conf.urls.defaults import patterns, include, url from django.views.generic.base import RedirectView urlpatterns = patterns('', url("^favicon\.ico", RedirectView.as_view( url = os.path.join(settings.STATIC_ROOT, "images/favicon.ico"))), )
Bom, após alguns testes percebi que, mesmo utilizado servidor de desenvolvimento do Django, descobri que isto não funciona. Pois, este servidor ao receber uma requisição na url "^favicon\.ico", ele
automaticamente redireciona a requisição para: "^images/favicon\.ico".
Pensando um pouco melhor:
Será que o Django, sendo um framework para desenvolvimento web, é responsável por atuar como servidor de arquivos? Acredito que não, porque esta é a responsabilidade do WebServer.Então, após ler mais um pouco da documentação da release 1.4, encontrei um tópico bastante interessante que descreve padrões de URLS que o Django não reportará erros ao encontrar um 404.
Com isso podemos concluir que este tipo de arquivo não será gerenciado pelo Django e sim pelo WebServer, neste caso para concluir a configuração deverá ser realiza WebServer.