【问题标题】:Do I need to have a favicon on my site? How do I get rid of the errors I see in my apache log?我需要在我的网站上有一个网站图标吗?如何摆脱我在 apache 日志中看到的错误?
【发布时间】:2011-05-15 06:10:52
【问题描述】:

我一直在我的 apache 日志中看到网站图标警告。我该如何摆脱这些?我的网站必须有一个网站图标吗?

【问题讨论】:

  • 您可能可以使用 mod_rewrite 发送 favicon 请求,但我不够熟练,无法告诉您具体如何...

标签: favicon


【解决方案1】:

查看您的日志,您可能会看到这样的 404 错误:

  • favicon.ico:Internet Explorer、Chrome……
  • apple-touch-icon.png:iOS 设备、Android,也许还有其他一些设备
  • apple-touch-icon-precomposed.png:iOS 设备、Android,可能还有其他一些设备
  • apple-touch-icon-76x76.png:iOS,可能还有其他设备
  • apple-touch-icon-120x120.png:iOS,可能还有其他设备
  • apple-touch-icon-152x152.png: iOS,可能还有其他设备

如果您绝对不想将网站图标添加到您的网站,您可以应用其他答案中描述的解决方案:

  • mod_rewrite
  • 强制 404
  • 空白图片

但是,现在网站图标非常普遍,您可能想在自己的网站上添加一个。这个favicon generator 一次创建所有这些文件。全面披露:我是这个网站的创建者。

【讨论】:

    【解决方案2】:

    你并不真的需要它,但正如其他人所说,即使<link rel="shortcut icon" /> 中没有指定,一些浏览器也会要求它。

    我不是专家,但我玩过mod_rewrite,你可以这样做:

    # turn on the mod_rewrite module
    RewriteEngine On
    # if requested file is not an existing file
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f 
    # and it's name is favicon.ico, send an empty 410 GONE response to the browser
    RewriteRule .*favicon\.ico$ - [G] 
    

    我只在我的本地主机上尝试过:第一个请求导致 410,但对于所有后续请求,浏览器不会要求该文件,因为它记得它已经消失了。

    我不确定您应该如何使用 410 GONE 状态,也不确定它是否能 100% 工作。

    【讨论】:

      【解决方案3】:

      Johan Petersson 在http://www.trilithium.com/johan/2005/02/no-favicon/http://www.trilithium.com/johan/2005/02/no-favicon/ 上提供了一个很好的答案来防止文件未找到错误而不使用网站图标

      将以下代码放置在 httpd.conf 的虚拟主机部分(或您定义站点环境的任何位置),应该可以停止 Apache 错误日志中出现的错误:

      # Don't bother looking for favicon.ico
      Redirect 404 /favicon.ico
      
      # Don't bother sending the custom error page for favicon.ico
      <Location /favicon.ico>
          ErrorDocument 404 "No favicon
      </Location>
      

      或者,您可以创建一个空白文件并将其命名为 favicon.ico,并将其放在站点的根目录中。

      【讨论】:

      • 问题是,当浏览器收到 404 时,它可能会继续为它请求的每个新页面请求图标 - 我在说你,Chrome!
      • 关于这个的一个问题,如果我有一个网站图标,它会显示吗?,我真的很想定义一次,而不是为每个虚拟主机定义,但如果其中一个有网站图标它应该显示出来。
      【解决方案4】:

      /favicon.ico 是 Browser Dark Ages (cca 2000) 的产物之一。虽然无法阻止浏览器请求,但创建一个名为 favicon.ico 的 0 字节文件会结束 404 错误流程(因为该文件存在),但浏览器不会显示您网站的 favicon。

      【讨论】:

      【解决方案5】:

      网络浏览器使用它来显示您在收藏夹中看到的图像以及标签的图标。例如当您转到 stackoverflow 时,您在选项卡中看到的酷图标如下所示: 由我的浏览器(chrome)使用 url 自动获取:https://stackoverflow.com/favicon.ico。它非常标准,所以如果您不希望它出现在您的日志中,您应该在 httpdocs 中放置一些图标并将其重命名为 favicon.ico。

      【讨论】:

      • 谢谢! @basarat,如果放入 httpdocs 不起作用,请尝试将其放入项目的公共目录中 - 本质上它们是相同的。
      【解决方案6】:

      您不需要,不,但某些浏览器会自动请求/favicon.ico,因此错误几乎是不可避免的。

      【讨论】:

        【解决方案7】:

        真的不需要。

        但是它在您的网站上使用(警告)。

        检查您网站的来源,看看它是否包含:

        <link rel="shortcut icon" href="favicon.ico">
        

        在页面的头部。

        删除该行或添加网站图标以防止日志中出现错误。

        【讨论】:

        • 即使您没有在页眉中定义网站图标位置,浏览器也会默认尝试获取 /favicon.ico。
        • 哦,好的。没有意识到这一点。谢谢你启发我!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-24
        • 2013-07-28
        • 1970-01-01
        • 1970-01-01
        • 2015-11-07
        • 1970-01-01
        • 2012-04-25
        相关资源
        最近更新 更多