我是Python和Django的新手。我在执行runserver后尝试从登录页面登录时看到此错误消息
$ python manage.py runserver
Running in development mode.
Running in development mode.
Running in development mode.
Running in development mode.
Validating models...
0 errors found
Django version 1.4b1, using settings 'platformsite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[21/Feb/2012 02:33:26] "GET /accounts/home/ HTTP/1.1" 200 10698
WARNING 2012-02-21 02:33:27,204 base 41333 4353703936 Not Found: /favicon.ico
[21/Feb/2012 02:33:30] "POST /accounts/home/ HTTP/1.1" 200 11098
WARNING 2012-02-21 02:33:30,581 base 41333 4362117120 Not Found: /favicon.ico
[21/Feb/2012 02:33:35] "POST /accounts/home/ HTTP/1.1" 200 10975
WARNING 2012-02-21 02:33:36,333 base 41333 4370530304 Not Found: /favicon.ico
[21/Feb/2012 02:33:57] "POST /accounts/home/ HTTP/1.1" 200 10975
WARNING 2012-02-21 02:33:57,670 base 41333 4349497344 Not Found: /favicon.ico
我使用的是Python 2.7,Django 1.4和OS X 10.7 这个警告是什么以及如何摆脱它?
答案 0 :(得分:22)
大多数浏览器会在网站域的根路径中查找名为favicon.ico的文件,这会控制您可以在书签文件夹或浏览器地址栏中看到的网站图标。
如果您没有,那么它将返回Not Found错误。
答案 1 :(得分:7)
当您部署到Apache之类的东西时,您必须在配置文件中为您的favicon添加别名。但是,在开发模式下运行Django时,以下工作
urls.py:
from django.views.generic import RedirectView
url_patterns=[
...
url(r'^favicon\.ico$',RedirectView.as_view(url='/static/images/favicon.ico')),
]
答案 2 :(得分:6)
您的浏览器正在寻找可以在位置栏中显示的图标。要么给它一个,要么忽略警告。
答案 3 :(得分:3)
几乎所有浏览器通常都会在网站域的根路径中查找名为favicon.ico
的文件,这控制了我们可以在书签文件夹或地址栏中看到的网站图标。浏览器。
当浏览器搜索favicon.ico
并没有找到它时,则将返回未找到错误。
django.contrib.staticfiles.storage
提供了staticfiles_storage
,它是项目已配置的静态文件存储的一个实例。存储器具有一种URL方法,“ [r]返回一个绝对URL,可通过Web浏览器直接访问文件的内容。”这正是{% static %}
标签所使用的。
因此,模板中的{% static 'favicon.ico' %}
本质上等同于Python中的staticfiles_storage.url('favicon.ico')
。我们将<link rel="icon" href="{% static 'base/icons/favicon.ico' %}">
添加到base.html
此外,在项目文件夹的“ static / base / icons”文件夹中添加图标文件favicon.ico
,该问题将得到解决。
favicon.ico
可以是公司徽标或网站所基于的任何内容。
答案 4 :(得分:2)
您可以通过发送static_path
设置来提供静态文件
作为关键字参数。我们将从中提供这些文件
/static/
URI(可配置为
static_url_prefix
设置),我们将投放/favicon.ico
和/robots.txt
来自同一目录。自定义的子类
可以使用StaticFileHandler
指定
static_handler_class
设置。
“”“
答案 5 :(得分:0)
一种简单的方法是在apache conf文件中创建一个别名:
<VirtualHost *:443>
...
Alias /favicon.ico /path/to/your/favicon.ico
...
</VirtualHost>
答案 6 :(得分:0)
我正在构建一个Web API,并且也遇到了这个问题。因为这只是一个演示项目,所以我在浏览器上抛出了一个虚拟响应以使错误消失。在主要的urls.py
中,我在其上方添加了一些虚假的视图。显然,在生产中,您只需将该图标保留在静态根目录中即可,该位置已在服务器配置文件中设置。
from django.http import HttpResponse
def okay(request):
return HttpResponse('pretend-binary-data-here', content_type='image/jpeg')
urlpatterns = [
path('favicon.ico', okay),
...
]