0

おそらく何かが欠けているのでしょう (そうであることを願っています!) が、favicon.ico や apple-touch-icon など、ブラウザーが要求する 1 回限りのルート Web サイト ファイルを処理する必要があるのは非常に扱いにくいようです。 -precomposed.png (iPad 上)。現在、明示的にファイルを提供していないこれらのいずれかに遭遇するたびに、500 サーバー エラーが発生します。

私の質問:

  1. 私の webapp が処理する必要があるすべての主要なブラウザーのそのようなすべてのファイルの最新のリストはありますか?

  2. フェイルセーフとして、これらのファイルが存在しない場合にサイレントに失敗する方法はありますか?

Gunicorn を使用して Heroku で Django アプリを実行しています。

4

1 に答える 1

1

STATIC_URL とクラスベースの RedirectView を使用しているため、無効な URL から 500 エラーが発生することはありません

通常、私はこれ専用のアプリを持っており、それをルート urls.py に含めます

#urls.py
include('oneoff.urls', name='oneoff')`

#oneoff/urls.py
urlpatterns = ( '',
    url(r'favicon.ico$',
        RedirectView.as_view(url=urlparse.urljoin(settings.STATIC_URL, "img/favicon.ico")),
        name="favicon"
    ),
    url(r'icon-precomposed.png',
        RedirectView.as_view(url=urlparse.urljoin(settings.STATIC_URL, "img/iphone/icon.png")),
        name="iphone"
    ),
)

次にテンプレで

{% load url from future %}
<link rel="favicon" href="{% url 'oneoff:favicon' %} />
于 2012-09-16T17:19:59.117 に答える