Servire favicon.ico con django. Perché impostazioni.media_url con django.views.generic.simple.direct_to funziona solo sull'ambiente Dev?

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

Domanda

Ho trovato questa soluzione per servire favicon.ico con django.

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

Non capisco perché funzioni solo per il server di sviluppo. Andare a /favicon.ico funziona su Dev, non lo fa debug=False. Dovrebbe reindirizzare a /media/images/favicon.ico (servito da Apache), che funziona se lo accedi direttamente.

Qualche idea?

È stato utile?

Soluzione

Consiglierei di servire il Favicon con Django a meno che tu non debba assolutamente. Invece, inserire un'impostazione nella configurazione del server web che aggiunge un alias che punta a Favicon.

Ad esempio, in Apache:

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

Altri suggerimenti

Questa non è una risposta diretta alla tua domanda, ma puoi usarlo per Favicon:

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

Redirect_to è stato Deprecate in Django 1.5. È possibile utilizzare RediRectView basato su classe

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'))
)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top