正文索引 [隐藏]
OneNav通过访问https://favicon.rss.ink/v1/网址的base64编码,返回网站的图标。因为图标缓存在第三方服务器,当网站图标变更时不能及时控制刷新缓存,也无法自定义图标这就很难受了。
搭建 getFavicon API
我使用的是getFavicon,可以获取网站的Favicon图标并显示在你的网页上。
- 上传到网站根目录或者 favicon 文件夹中
- cache 文件夹给 755 权限
- 然后访问 http(s)://you.url/favicon/get.php?url=目标网址
伪静态
使网址格式更美观,方便cdn缓存
# Nginx规则 rewrite ^/favicon/(.*)\.png$ /favicon/get.php?url=$1; # Apache 规则 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^favicon/(.*)\.png$ favicon/get.php?url=$1 [L] </IfModule>
调用方法 http(s)://you.url/favicon/目标网址.png
注:目标网址不能有 http(s)://
修改OneNav
不用伪静态
【templates\default\index.php】 第139行 <img src="https://favicon.rss.ink/v1/<?php echo base64($link['url']); ?>" alt="HUAN" width="16" height="16"> 改为 <img src="favicon/get.php?url=<?php echo $link['url']; ?>" alt="HUAN" width="16" height="16"> 【templates\webstack\index.php】 第168行 <img src="https://favicon.rss.ink/v1/<?php echo base64($link['url']); ?>" alt="HUAN" width="16" height="16"> 改为 <img src="favicon/get.php?url=<?php echo $link['url']; ?>" alt="HUAN" width="16" height="16">
使用伪静态
由于使用伪静态后目标网址不能带有http(s)://,且后面要加上.png后缀。而OneNav中$link[‘url’]返回的网址开头带有http(s)://末尾带有/,所以需要把返回网址进行格式化。
【templates\default\index.php】 第139行 <img src="https://favicon.rss.ink/v1/<?php echo base64($link['url']); ?>" alt="HUAN" width="16" height="16"> 改为 <img src="favicon/<?php echo rtrim(strtr($link['url'], array('https://' => '', 'http://' => '')), '/'); ?>.png" alt="HUAN" width="16" height="16"> 【templates\webstack\index.php】 第168行 <img src="https://favicon.rss.ink/v1/<?php echo base64($link['url']); ?>" alt="HUAN" width="16" height="16"> 改为 <img src="favicon/<?php echo rtrim(strtr($link['url'], array('https://' => '', 'http://' => '')), '/'); ?>.png" alt="HUAN" width="16" height="16">
评论
感谢分享 赞一个