简单谈谈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实现文件上传二法
Oct 09 PHP
一个自定义位数的php多用户计数器代码
Mar 11 PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 PHP
PHP生成自定义长度随机字符串的函数分享
May 04 PHP
php递归json类实例
Dec 02 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
Yii全局函数用法示例
Jan 22 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 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
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
JavaScript Prototype对象
2009/01/07 Javascript
javascript 类定义的4种方法
2009/09/12 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
python排序方法实例分析
2015/04/30 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
virtualenv 指定 python 解释器的版本方法
2018/10/25 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
酒店应聘自荐信
2013/11/09 职场文书
幼儿园家长评语
2014/02/10 职场文书
房屋租赁意向书
2014/04/01 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
运动员加油词
2015/07/18 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
MySQL的Query Cache图文详解
2021/07/01 MySQL
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
使用 Apache 反向代理的设置技巧
2022/01/18 Servers