Обслуживание favicon.ico с Джанго. Почему settings.MEDIA_URL с django.views.generic.simple.redirect_to работает только в среде разработчиков?
Я нашел это решение для обслуживания 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 ответа
Решение
Я бы рекомендовал не подавать фавикон с django, если только вам это не нужно. Вместо этого добавьте параметр в конфигурацию вашего веб-сервера, который добавляет псевдоним, указывающий на значок.
Например, в Apache:
Alias /favicon.ico /path/to/media_url/images/favicon.ico
Это не прямой ответ на ваш вопрос, но вы можете использовать это для favicon:
<link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
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'))
)