web-dev-qa-db-ja.com

Djangoでfavicon.icoを提供します。 Django.views.generic.simple.redirect_toを使用したsettings.MEDIA_URLが開発環境でのみ機能するのはなぜですか?

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が提供)にリダイレクトする必要があります。これは、直接アクセスすると機能します。

何か案は?

24
Clash

どうしても必要な場合を除いて、ファビコンをDjangoで提供しないことをお勧めします。代わりに、ファビコンを指すエイリアスを追加する設定をWebサーバー構成に配置します。

たとえば、Apacheの場合:

Alias /favicon.ico /path/to/media_url/images/favicon.ico
51
Jordan Reiter

これはあなたの質問に対する直接の答えではありませんが、ファビコンにこれを使用できます。

<link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
29

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'))
)
16
Eran Duchan