简单谈谈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 程式大小
Dec 06 PHP
PHP生成月历代码
Jun 14 PHP
php+mysql 实现身份验证代码
Mar 24 PHP
PHP与C#分别格式化文件大小的代码
May 14 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
php实现图片文件与下载文件防盗链的方法
Nov 03 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
YII框架批量插入数据的方法
Mar 18 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
php解决约瑟夫环算法实例分析
Sep 30 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 curl的深入解析
2013/06/02 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
python学生管理系统的实现
2020/04/05 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
免税水晶:Duty Free Crystal
2019/05/13 全球购物
平安校园建设方案
2014/05/02 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
党员个人剖析材料
2014/09/30 职场文书
医生个人年终总结
2015/02/28 职场文书
加强党性修养心得体会
2016/01/21 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
python内置进制转换函数的操作
2021/06/02 Python
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS