简单谈谈favicon


Posted in PHP onJune 10, 2015

favicon.ico介绍

favicon.ico是个什么东西呢,也许见得太多都习以为常了(我就是这样,直到写这篇文章之前才知道),看看维基百科的解释:

Favicon是favorites icon的缩写,亦被称为website icon(网页图标)、page icon(页面图标)或urlicon(URL图标),下面是链接 http://zh.wikipedia.org/wiki/Favicon

其实说白了就是这个东西,大部分网站都会在打开的浏览器tab最左侧显示这个小图标,这个就是favicon.ico

简单谈谈favicon

这个图标怎么设置的呢,有多少同学跟我一样对这个小细节习以为常了,但是不清楚怎么设置举个手(这里检讨下自己,有好多细节东西把脸都能碰肿,但我却不真正的了解他,更可怕的是我的潜意识里认为我了解他......)。

favicon设置

这个怎么设置呢,设置方法很简单,有两种法子:

默认放置在服务器根目录下面

就是将文件命名为favicon.ico并放在网站根目录下就可以,浏览器会自动方请求去获取http://host/favicon.ico,这个请求在浏览器中通过F12是看不到的,需要借助其他工具(比如说Fiddler)去看,或者打开服务器访问日志,比如我这个,nginx日志中会显示网页图标请求
"13/May/2015:16:07:31 +0800" "192.168.X.X" "test.test.com" "200" "GET /favicon.ico HTTP/1.1" "4409" ......

通过link标签修正网页图标位置和名称

这种方法就是通过html的link标签设置网页图表的位置和名称,就像下面这样
<link href="favicon_baoman.ico" type="image/x-icon" rel="icon">

简单谈谈favicon

注意点

浏览器会缓存图标的信息,firefox我试了下是每隔一段时间(2分钟左右)就会请求一次favicon,chrome要删除数据才可以重新请求~~

这个有什么影响呢

发现这个问题是因为PHP框架,PHP框架通过pathinfo去解析路由,路由方式为【mod/controller.method】,如果不匹配的话就记录日志并返回404,我访问一个正确的路径也会报错说是路由不存在,但是接口返回是ok的,访问一个错误的路由会记录两条错误日志,这个是怎么回事呢,下面是我的nginx配置

server {
   listen  80;
   server_name test.test.com;

   location / {
     root /export/adsz/boss/php/sphp;
     fastcgi_pass  127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_path_info;
     include fastcgi_params;
     rewrite ^/(.*)$  /index.php/$1 break;
   }
 }

nginx配置导致了这个问题的存在,浏览器请求一个接口的时候,会默认带上http://test.test.com/favicon.ico,这个时候报出路由错误就想的通了,浏览器发出两条请求,一条使我们想要的,另一条就是这个ico网页图标请求,这个问题解决方法也很简单,只需要在配置中添加这个图表或者将favicon请求定位到其他地方:

server {
   listen  80;
   server_name test.test.com;
  location = /favicon.ico {
    root /wwroot/public/images/;
  }
   location / {
     root /wwroot/;
     fastcgi_pass  127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_path_info;
     include fastcgi_params;
     rewrite ^/(.*)$  /index.php/$1 break;
   }
 }

总结

找到这个原因并修改后,我又仔细看了看nginx配置,发现其他虚拟主机都有配置这个favicon.ico的匹配规则!?濉!!#?芙嵯拢?褪且?嗫纯矗?嘞胂胛?裁矗?灰?院芏喽?魇?バ巳ぁ⒓?植还?/p>

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
php access 数据连接与读取保存编辑数据的实现代码
May 12 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
浅谈COOKIE和SESSION区别
Jul 19 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
thinkPHP简单遍历数组方法分析
May 16 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
Dec 08 PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 #PHP
PHP中生成UUID自定义函数分享
Jun 10 #PHP
php使用for语句输出三角形的方法
Jun 09 #PHP
php生成图片验证码
Jun 09 #PHP
php判断用户是否手机访问代码
Jun 08 #PHP
浅谈PHP中Stream(流)
Jun 08 #PHP
php实现有趣的人品测试程序实例
Jun 08 #PHP
You might like
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
php实现aes加密类分享
2014/02/16 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
this在vue和小程序中的使用详解
2019/01/28 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
python程序变成软件的实操方法
2019/06/24 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
Pytorch 实现权重初始化
2019/12/31 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
师范生自荐信范文
2013/10/06 职场文书
函授本科自我鉴定
2013/11/03 职场文书
优秀食品类广告词
2014/03/19 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
学生个人总结范文
2015/02/15 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers