これは古い質問ですが、まだ問題があります。現在のソリューションでリストから URL を生成する方法は気に入っていますが、それが最善であるとは確信していませんでした。
少し調査した結果、realfavicongenerator.netは、必要なファビコン ファイルをすべて生成する非常に便利なリソースであることがわかりました。提案されたソリューションをサポートしていると思われる同僚から、最新の Django バージョンでこの投稿が送信されました。
上記のすべてに基づいて、私のソリューションは、ネイティブ サイトマップ フレームワーク、 robots.txtの django-robotsおよび ROOT_ASSETS 辞書を使用し、ファイル プレフィックスをキーとして、値をファイルのリストとして使用します。次に例を示します。
ROOT_ASSETS = {
"images/favicons/": [
"apple-touch-icon-114x114.png",
"apple-touch-icon-120x120.png",
"apple-touch-icon-144x144.png",
"apple-touch-icon-152x152.png",
"apple-touch-icon-180x180.png",
"apple-touch-icon-57x57.png",
"apple-touch-icon-60x60.png",
"apple-touch-icon-72x72.png",
"apple-touch-icon-76x76.png",
"apple-touch-icon-precomposed.png",
"favicon.ico",
]
}
次に、次のように URL を生成します。
from django.conf.urls import patterns, url, include
from django.contrib.staticfiles.storage import staticfiles_storage
root_assets_urls = []
for prefix, files in ROOT_ASSETS.iteritems():
for f in files:
asset_url = staticfiles_storage.url("{prefix}{file}".format(prefix=prefix, file=f))
root_assets_urls.append(
url(r'^{0}$'.format(f), RedirectView.as_view(url=asset_url))
)
root_assets = patterns('', *root_assets_urls)
urlpatterns = patterns(
'',
url(r'^', include(root_assets)),
[...]
)
また、マスター テンプレートの頭にrealfavicongenerator.netによって生成された HTML を含めています。