我如何在开发中提供favicon.ico?我可以在我的urlconf中添加一个路由,但我不希望该路由转移到生产环境.有没有办法在local_settings.py中执行此操作?
dm0*_*514 15
最简单的方法是将它与其他静态媒体一起放在静态目录中,然后在html中指定它的位置:
<link rel="shortcut icon" type="image/png"
href="{% static 'images/favicon.ico' %}"/>
Run Code Online (Sandbox Code Playgroud)
我的回答是:
您可以在自己中设置一个条目,urls.py
然后检查是否debug
为真.这将使其无法在生产中使用.我认为你可以像静态媒体那样做.
if settings.DEBUG:
urlpatterns += patterns('',
(r'^favicon.ico$', 'django.views.static.serve', {'document_root': '/path/to/favicon'}),
)
Run Code Online (Sandbox Code Playgroud)
您也可以从您的视图中提供图标:
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, mimetype="image/png")
Run Code Online (Sandbox Code Playgroud)
这对我有用:
from django.conf.urls.static import static
...
if settings.DEBUG:
urlpatterns += static(r'/favicon.ico', document_root='static/favicon.ico')
Run Code Online (Sandbox Code Playgroud)
来自文档:
from django.conf.urls.static import static
urlpatterns = patterns("",
# Your stuff goes here
) + static('/', document_root='static/')
Run Code Online (Sandbox Code Playgroud)
似乎没有办法提供单个静态文件,但至少这个辅助函数是一个包装器,仅在DEBUG = True时才有效.