sexta-feira, março 30, 2012

Django 1.4 Favicon and ignorable 404

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.


Nenhum comentário:

Postar um comentário