警告未找到:/favicon.ico

hen*_*lee 29 python django

我是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
Run Code Online (Sandbox Code Playgroud)

我正在使用Python 2.7,Django 1.4和OS X 10.7这是什么警告以及如何摆脱它?

Rus*_*rke 24

大多数浏览器会在网站域的根路径中查找名为favicon.ico的文件,这会控制您在书签文件夹或浏览器地址栏中可以看到的网站图标.

如果你没有,那么它将返回Not Found错误是有效的.

  • 很清楚原因是什么,但是如果您不想要图标,将如何禁用警告? (2认同)
  • @Shayan 您网站域的根路径是紧随您的域名之后的任何路径。因此,对于域“example.com”,如果其 URL 为“example.com/logo.png”,则可以说“logo.png”位于该域的根路径中。此根路径不应与 Django 的项目根或模板目录混淆。 (2认同)

Sye*_*dri 13

favicon.ico几乎所有浏览器通常都会在网站域的根路径中查找是否存在一个名为的文件,该文件控制我们可以在浏览器的选项卡、书签文件夹或地址栏中看到的网站图标。

\n

当浏览器搜索favicon.ico但没有找到相同的内容时,它会返回“未找到”错误。

\n

django.contrib.staticfiles.storage提供staticfiles_storage,它是您的项目\xe2\x80\x99s 配置的静态文件存储的实例。存储有一个 URL 方法,\xe2\x80\x9c[r]返回一个绝对 URL,其中文件\xe2\x80\x99s 的内容可以通过 Web 浏览器直接访问。\xe2\x80\x9d,这正是{% static %}标签用途。

\n

所以{% static 'favicon.ico' %}在模板中本质上等同于staticfiles_storage.url('favicon.ico')在Python中。我们可以在 django 的 中添加<link rel="icon" href="{% static 'base/icons/favicon.ico' %}">under<head>标签base.html

\n

<head>当我们在其他域中遇到错误代码为 404 的此类错误时,可以在我们可以添加的部分下添加 favicon 的链接,<link>如下所示:

\n
<link rel="icon" href="static/projectname/favicon.ico">\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
<link rel="shortcut icon" type="image/x-icon" href="base/icons/favicon.png"/>\n
Run Code Online (Sandbox Code Playgroud)\n

不要忘记添加图标文件所需的位置favicon.ico,问题将会得到解决。

\n

可以favicon.ico是公司的徽标或网站所基于的任何内容。

\n


Seb*_*ian 8

当您部署到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')),
]
Run Code Online (Sandbox Code Playgroud)

  • 路径('favicon.ico', RedirectView.as_view(url='/static/favicon.ico')), (5认同)

小智 7

  • 我遇到了同样的问题,favicon.ico没有找到。

  • 我将图像文件转换favicon.icohttps://favicon.io/favicon-converter/

  • 下载 zip 文件后,创建名为 favicon 的新文件夹,并将 zip 中的所有文件复制到 favicon 文件夹中。

  • 之后,我只需复制 favicon 文件夹并粘贴到静态文件夹中。

  • urls.py我在文件(我们的文件所在的文件夹)中更新了这行代码settings.py

     from django.urls import path
     from . import views
     from django.contrib.staticfiles.storage import staticfiles_storage
     from django.views.generic.base import RedirectView
    
     urlpatterns = [    
          path('favicon.ico', RedirectView.as_view(url=staticfiles_storage.url('favicon/favicon.ico')))
     ]
    
    Run Code Online (Sandbox Code Playgroud)
  • 也许我的错误得到解决。

  • 希望对你有帮助!


Ign*_*ams 6

您的浏览器正在寻找可以在位置栏中显示的图标.要么给它一个,要么忽略警告.

  • 更好的答案是提供代码示例;) (3认同)