Internet Explorer 上的 Cakephp Favicon

Cakephp Favicon on Internet Explorer

我正在尝试在 IE 上设置网站图标,因为我总是收到警告说它没有被访问。

2017-03-06 19:43:25 Error: [Cake\Routing\Exception\MissingControllerException] Controller class Favicon.ico could not be found.

在其他浏览器上,它们没有问题。

我有以下代码

<link rel="icon" type="image/x-icon" href="url/favicon/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/x-icon" href="url/favicon/favicon-16x16.png" sizes="16x16">
<link rel="shortcut icon" href="url/favicon/favicon-16x16.png" type="image/x-icon">

然而,它仍然报错。

有什么想法吗?

TL;DR

创建一个名为 favicon.ico 的图标文件并将其放在站点的根目录下。

详情

按照惯例,IE 在访问站点时会查找 /favicon.ico。现代版本也支持PNG图标,所以这个问题是无害的,可以忽略。

如何解决此问题:

  • 在您网站的根目录提供 favicon.ico。这将防止失败,同时为某些浏览器提供他们正在寻找的内容。
  • 制作 CakePHP 忽略错误。显然,访问技巧 CakePHP 认为这必须路由到某些 PHP 代码。如果 CakePHP 可以将这种访问视为它的本来面目(即对静态文件的访问),它就会以它应该的方式结束:一个常规的 404 错误。没有人喜欢 404,但至少这是正确的行为,这与寻找名为 Favicon.ico.
  • 的假想控制器不同

谢谢大家的回答

修复了路由问题

Router::redirect(
    '/favicon.ico',
   'url.ico', array('status' => 302)
);