目录结构如下home page home page
folder | |-- baidu.ico 百度 icon |-- home_childe.htmlImages | |-- wangyi.ico 网易 iconfavicon.ico 博客园 iconhome.html测试通过 http://localhost:3529/home.html 进行网页访问,结果如下:
- 通过 360 浏览器浏览网页时,会忽略端口 3529 ,发送的获取 icon 请求是 http://localhost/favicon.ico ,因为发送的目的端口不是 3529 ,所以该请求会发送到网络上,此时获得的 icon 可能是 google 的 icon 。
- 通过 firefox 浏览器浏览网页时,请求到的 icon 是 link 标签中 href 所对应的图标,即 Images/wangyi.ico 。
- 通过搜狗浏览器浏览网页时,发送的获取 icon 请求是 http://localhost:3529/favicon.ico ,即获取根目录下保存的 icon 图标。
- 总是被命名为 favicon.ico ;
- 默认存放在网站 web 根目录。我们常常看到这样的一个请求 /favicon.ico ;
- 它总是显示在浏览器地址栏,网址的左边;
- 当访问一个页面的时候,不管怎么样,浏览器都会请求这个文件,即 /favicon.ico ;
- 可以通过在页面的 <head> 部分加入 <link> 元素来重新指定它的位置 <link rel=”shortcut icon” href=http://www.cctv.com/favicon.ico />
- ico 格式可以是不同分辨率的图像,比如 16×16 ,32×32 等。
通过 <link> 更新缓存。/favicon.ico 名字和位置总是固定死的,如果你需要更新缓存的话,可以通过 <link> 元素重新指定它的位置; 保持较小的图片大小。虽然 ico 格式文件支持不同的分辨率,但是我们推荐 16×16 大小,并且文件大小在 1kb 左右。 【】 若无法找到 favicon.ico 文件,则会在 nginx 的 error_log 中生成大量错误日志信息,把我们真正需要查看的日志给覆盖。因此这里,我们通过 log_not_found off 关闭它。 实现方式为,把如下配置放到 server {} 块,用于当 favicon.ico 不存在时,不写错误日志。ExpiresActive On ExpiresByType image/ico "access plus 1 year" ExpiresByType image/icon "access plus 1 year"
location = /favicon.ico { ## 采用完全匹配模式 log_not_found off; ## 不写 error.log access_log off; ## 不写 access.log}配置项 log_not_found 默认为 on ,用于启用或禁用 404 错误日志,这个指令可以用来禁止 nginx 在找不到 rebots.txt 或 favicon.ico 这类文件时记录错误信息。 若设置了 log_not_found off; 则 error.log 中将不出现如下日志
2014/07/28 17:02:49 [error] 3697#0: *199 open() "/usr/local/nginx/html/favicon.ico" failed (2: No such file or directory), client: 172.16.80.111, server: 172.16.81.112, request: "GET /favicon.ico HTTP/1.1", host: "172.16.81.112"如设置了 access_log off; 则你自定义的 access.log 中将不出现如下日志
[172.16.80.111][-][28/Jul/2014:17:02:49 +0800][GET /favicon.ico HTTP/1.1][404][570][-]‘[Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36][-]若配置为
location /favicon.ico { ## 相当于模糊匹配}则当访问
http://172.16.81.112/favicon.ico 或 http://172.16.81.112/favicon.icoXXX时,则都会在 error.log 和 access.log 中记录日志,且因为匹配成功而不会走反向代理配置。 若配置为
location = /favicon.ico { ## 完全匹配}则当访问
http://172.16.81.112/favicon.ico时,则在 error.log 和 access.log 中记录日志,且因为匹配成功而不会走反向代理配置。若访问
http://172.16.81.112/favicon.icoXXX则会因为匹配失败而走反向代理。