خدمة favicon.ico مع Django. لماذا الإعدادات. media_url مع django.views.generic.simple.redirect_ إلى العمل فقط على بيئة dev؟

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

سؤال

لقد وجدت هذا الحل لخدمة 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) ، والتي تعمل إذا قمت بالوصول إليها مباشرة.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

أوصي بعدم خدمة Favicon مع Django إلا إذا كان عليك ذلك على الإطلاق. بدلاً من ذلك ، وضع إعدادًا في تكوين خادم الويب الخاص بك يضيف الاسم المستعار يشير إلى Favicon.

على سبيل المثال ، في أباتشي:

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'))
)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top