Django favicon.ico在开发中?

ne5o7dgx  于 2022-11-18  发布在  Go
关注(0)|答案(5)|浏览(162)

如何在开发中提供favicon.ico?我可以在urlconf中添加一个路由,但我不希望该路由被带到生产环境中。是否有办法在local_settings.py中实现这一点?

cgvd09ve

cgvd09ve1#

最简单的方法是将它与其他静态媒体一起放在静态目录中,然后在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")
vhipe2zx

vhipe2zx2#

这对我很有效:

from django.conf.urls.static import static

...

if settings.DEBUG:
    urlpatterns += static(r'/favicon.ico', document_root='static/favicon.ico')
tvokkenx

tvokkenx3#

从文档中:

from django.conf.urls.static import static

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

似乎没有一种方法可以服务于单个静态文件,但至少这个helper函数是一个 Package 器,它只在DEBUG = True时工作。

k10s72fa

k10s72fa4#

我用这个:

from django import conf
from django.conf.urls import static

...

if conf.settings.DEBUG:
    urlpatterns += static.static(
        r"/favicon.ico", document_root=conf.settings.STATIC_ROOT / "favicon.ico"
    )
2w2cym1i

2w2cym1i5#

您可以创建自己的loader.py文件,该文件加载您想要覆盖的设置。加载该文件应如下所示:

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

并添加到settings.py的末尾。此设置不应提交到生产服务器,而应只出现在开发计算机上。如果您使用的是git,请将www.example.com添加loader.py到. gitignore。

相关问题