24

我找到了使用 django 为 favicon.ico 提供服务的解决方案。

(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 提供),如果您直接访问它,它确实可以工作。

有任何想法吗?

4

3 回答 3

51

除非您绝对必须这样做,否则我建议您不要使用 django 提供 favicon。相反,在您的网络服务器配置中添加一个指向网站图标的别名的设置。

例如,在阿帕奇:

Alias /favicon.ico /path/to/media_url/images/favicon.ico
于 2010-08-11T17:16:41.903 回答
29

这不是您问题的直接答案,但您可以将其用于 favicon:

<link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
于 2012-12-04T11:48:40.400 回答
16

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'))
)
于 2013-09-11T11:42:47.353 回答