14

開発中に favicon.ico を提供するにはどうすればよいですか? urlconf にルートを追加することはできますが、そのルートを本番環境に引き継がせたくありません。local_settings.py でこれを行う方法はありますか?

4

4 に答える 4

17

最も簡単な方法は、他の静的メディアと一緒に静的ディレクトリに配置し、html でその場所を指定することです。

<link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/>

私の古い答えは:

エントリを設定して、 trueurls.pyかどうかを確認できdebugます。これにより、本番環境で提供されなくなります。静的メディアと同じようにできると思います。

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^favicon.ico$', 'django.views.static.serve', {'document_root': '/path/to/favicon'}),
    )

ビューからファビコンを提供することもできます。

from django.http import HttpResponse

def my_image(request):
    image_data = open("/home/moneyman/public_html/media/img/favicon.ico", "rb").read()
    return HttpResponse(image_data, content_type="image/png")
于 2012-06-24T00:07:25.607 に答える
5

ドキュメントから:

from django.conf.urls.static import static

urlpatterns = patterns("",
    # Your stuff goes here
) + static('/', document_root='static/')

単一の静的ファイルを提供する方法はないようですが、少なくともこのヘルパー関数は、DEBUG = True の場合にのみ機能するラッパーです。

于 2012-07-14T20:26:02.710 に答える
-1

オーバーライドしたい設定をロードする独自の loader.py ファイルを作成できます。このファイルをロードすると、次のようになります。

try:
    execfile(os.path.join(SETTINGS_DIR, 'loader.py'))
except:
    pass

settings.py の最後に追加されます。この設定は、運用サーバーにコミットするべきではなく、開発マシンにのみ表示する必要があります。git を使用している場合は、loader.py を .gitignore に追加します。

于 2012-06-23T23:14:10.697 に答える