Служу favicon.ico с Джанго.Почему settings.MEDIA_URL с django.views.generic.simple.redirect_to работает только в среде разработчиков? - PullRequest
24 голосов
/ 11 августа 2010

Я нашел это решение для обслуживания favicon.ico с django.

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

Я не понимаю, почему оно работает только для сервера разработки.Переход к /favicon.ico работает на dev, не с debug=False.Он должен перенаправить на /media/images/favicon.ico (обслуживаемый apache), который работает, если вы обращаетесь к нему напрямую.

Есть идеи?

Ответы [ 3 ]

51 голосов
/ 11 августа 2010

Я бы рекомендовал не подавать фавикон с django, если только вам это не нужно.Вместо этого добавьте параметр в конфигурацию вашего веб-сервера, который добавляет псевдоним, указывающий на значок.

Например, в apache:

Alias /favicon.ico /path/to/media_url/images/favicon.ico
29 голосов
/ 04 декабря 2012

Это не прямой ответ на ваш вопрос, но вы можете использовать это для favicon:

<link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
16 голосов
/ 11 сентября 2013

redirect_to признано устаревшим в Django 1.5 . Вы можете использовать класс на основе 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'))
)
...