与django一起服务favicon.ico。为什么witchings.media_url with django.views.generic.simple.redirect_to仅在开发环境上工作?

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

我找到了与django一起使用favicon.ico的解决方案。

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

我不明白为什么它仅适用于开发服务器。去 /favicon.ico在开发方面工作,不使用 debug=False。它应该重定向到/media/images/favicon.ico(由Apache服务),如果您直接访问它,它确实有效。

有任何想法吗?

有帮助吗?

解决方案

除非您绝对需要,否则我建议不要与Django一起服务。取而代之的是,将设置放在Web服务器配置中,该设置添加了指向Favicon的别名。

例如,在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'))
)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top