如何在开发中提供favicon.ico?我可以在urlconf中添加一个路由,但我不希望该路由被带到生产环境中。是否有办法在local_settings.py中实现这一点?
cgvd09ve1#
最简单的方法是将它与其他静态媒体一起放在静态目录中,然后在html中指定它的位置:
<link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/>
我以前的回答是:你可以在你的urls.py中设置一个条目,然后检查debug是否为真。这将使它不能在生产中使用。我认为你可以做类似于静态媒体的事情。
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")
vhipe2zx2#
这对我很有效:
from django.conf.urls.static import static ... if settings.DEBUG: urlpatterns += static(r'/favicon.ico', document_root='static/favicon.ico')
tvokkenx3#
从文档中:
from django.conf.urls.static import static urlpatterns = patterns("", # Your stuff goes here ) + static('/', document_root='static/')
似乎没有一种方法可以服务于单个静态文件,但至少这个helper函数是一个 Package 器,它只在DEBUG = True时工作。
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" )
2w2cym1i5#
您可以创建自己的loader.py文件,该文件加载您想要覆盖的设置。加载该文件应如下所示:
try: execfile(os.path.join(SETTINGS_DIR, 'loader.py')) except: pass
并添加到settings.py的末尾。此设置不应提交到生产服务器,而应只出现在开发计算机上。如果您使用的是git,请将www.example.com添加loader.py到. gitignore。
5条答案
按热度按时间cgvd09ve1#
最简单的方法是将它与其他静态媒体一起放在静态目录中,然后在html中指定它的位置:
我以前的回答是:
你可以在你的
urls.py
中设置一个条目,然后检查debug
是否为真。这将使它不能在生产中使用。我认为你可以做类似于静态媒体的事情。你也可以从你的视角提供网站图标。:
vhipe2zx2#
这对我很有效:
tvokkenx3#
从文档中:
似乎没有一种方法可以服务于单个静态文件,但至少这个helper函数是一个 Package 器,它只在DEBUG = True时工作。
k10s72fa4#
我用这个:
2w2cym1i5#
您可以创建自己的loader.py文件,该文件加载您想要覆盖的设置。加载该文件应如下所示:
并添加到settings.py的末尾。此设置不应提交到生产服务器,而应只出现在开发计算机上。如果您使用的是git,请将www.example.com添加loader.py到. gitignore。