Sirviendo favicon.ico con django. ¿Por qué settings.media_url con django.views.generic.simple.redirect_to solo funciona en el entorno de desarrollo?

StackOverflow https://stackoverflow.com/questions/3460967

Pregunta

Encontré esta solución para servir favicon.ico con django.

(r'^favicon\.ico$',
  'django.views.generic.simple.redirect_to',
  {'url': settings.MEDIA_URL+'images/favicon.ico'}),

No entiendo por qué solo funciona para el servidor de desarrollo. Ir a /favicon.ico funciona en dev, no con debug=False. Debe redirigir a /media/images/favicon.ico (servido por Apache), que funciona si accede directamente.

¿Algunas ideas?

¿Fue útil?

Solución

Recomendaría que no sirva al favicon con Django a menos que tengas que hacerlo. En su lugar, colocar una configuración en la configuración de su servidor web que agrega un alias que apunta al Favicon.

Por ejemplo, en Apache:

Alias /favicon.ico /path/to/media_url/images/favicon.ico

Otros consejos

Esta no es una respuesta directa a su pregunta, pero puede usar esto para Favicon:

<link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />

redirect_to ha sido Deprecido en Django 1.5. Puede usar la vista basada en la clase RedirectView

from django.conf import settings
from django.views.generic import RedirectView

urlpatterns = patterns('',
    (r'^favicon\.ico$', RedirectView.as_view(url=settings.MEDIA_URL + 'images/favicon.ico'))
)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top