简单谈谈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 相关文章推荐
数据库相关问题
Oct 09 PHP
用PHP和ACCESS写聊天室(四)
Oct 09 PHP
php引用地址改变变量值的问题
Mar 23 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
Smarty foreach控制循环次数的实现详解
Jul 03 PHP
php实现mysql事务处理的方法
Dec 25 PHP
PHP中SESSION的注销与清除
Apr 16 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
Aug 08 PHP
ThinkPHP5+Layui实现图片上传加预览功能
Aug 17 PHP
php输出文字乱码的解决方法
Oct 04 PHP
Yii 框架入口脚本示例分析
May 19 PHP
php+websocket 实现的聊天室功能详解
May 27 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
层叠菜单的动态生成
2006/10/09 PHP
PHP eval函数使用介绍
2013/12/08 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
JS实现数组的增删改查操作示例
2018/08/29 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
python 把列表转化为字符串的方法
2018/10/23 Python
python生成带有表格的图片实例
2019/02/03 Python
Python 画出来六维图
2019/07/26 Python
python with (as)语句实例详解
2020/02/04 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
python实现网页录音效果
2020/10/26 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
网络教育毕业生自我鉴定
2013/10/10 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
先进党支部事迹材料
2014/12/24 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫