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サーバー構成に配置します。
たとえば、Apacheの場合:
Alias /favicon.ico /path/to/media_url/images/favicon.ico
これはあなたの質問に対する直接の答えではありませんが、ファビコンにこれを使用できます。
<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'))
)