2017-03-06 104 views
0

我试图在IE上设置图标,因为我总是得到警告说它没有被访问。在Internet Explorer上的Cakephp Favicon

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"> 

然而,这剧照给人的错误。

任何意识?

+0

你已经取代了会导致“直接URL”错误代码的一部分。很确定我们无法协助。 – Dave

+1

@Dave你说得对,修好了! :) – Cafn

+0

我不认为许多版本的IE支持PNG图标,你是否已经尝试过一种ico格式? – ahoffner

回答

0

谢谢大家的答案

与途径解决了问题

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

TL; DR

创建一个名为favicon.ico一个图标文件,并把它放在你的站点的根目录。

在细节

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

,你能做些什么来解决这个问题:

  • 在您的网站的根目录提供一个favicon.ico。这可以防止在给浏览器提供他们正在寻找的东西时出现故障。
  • 使CakePHP忽略错误。显然访问技巧CakePHP,认为这必须路由到一些PHP代码。如果CakePHP可以将此访问视为它(即对静态文件的访问),那么它最终应该是:常规的404错误。没有人喜欢404,但至少这是正确的行为,不同于寻求名为Favicon.ico的假想控制器。