Featured image of post onenav修改篇二

onenav修改篇二

使用自己的api来获取网址图标

OneNav通过访问https://favicon.rss.ink/v1/网址的base64编码,返回网站的图标。因为图标缓存在第三方服务器,当网站图标变更时不能及时控制刷新缓存,也无法自定义图标这就很难受了。

getFavicon

我使用的是 getFavicon 可以获取网站的Favicon图标并显示在你的网页上。

  • 上传到网站根目录或者 favicon 文件夹中
  • cache 文件夹给 755 权限
  • 然后访问 http(s)://you.url/favicon/get.php?url=目标网址

伪静态

使网址格式更美观,方便cdn缓存

1
2
3
4
5
6
7
8
# 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

不用伪静态

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
【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)://末尾带有/,所以需要把返回网址进行格式化。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
【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">
Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计