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.











