14

我如何在开发中为 favicon.ico 服务?我可以在我的 urlconf 中添加一个路由,但我不希望该路由延续到生产环境。有没有办法在 local_settings.py 中做到这一点?

4

4 回答 4

17

最简单的方法是将其与其他静态媒体一起放在您的静态目录中,然后在您的 html 中指定其位置:

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

我的旧答案是:

您可以在您的条目中设置一个条目,urls.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 回答
6

这对我有用:

from django.conf.urls.static import static

...

if settings.DEBUG:
    urlpatterns += static(r'/favicon.ico', document_root='static/favicon.ico')
于 2017-08-25T23:49:24.120 回答
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 回答