hexo 的 Next 主题 在 MacOS 下 Safari 浏览器一直不显示标签 logo 的问题
发现博客的favicon
图标一直不能在safari
的标签栏上显示,只能显示在地址栏,经过一番研究后发现是Hexo 的 Next主题的设置不正确造成的
1 | favicon: |
small
与medium
会生成两个与favicon
相关的设置,用来在地址栏与标签栏显示网站图标
1 | <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> |
safari_pinned_tab
会生成<link rel="mask-icon" href="logo.svg">
,它会覆盖标签栏上的favicon
图标,由于在设置这个属性的时候,错误的使用了非svg
文件(用的是png)导致了图标不能正确显示。
解决方法
设置正确的svg
文件,或者就不设置<link rel="mask-icon">
属性,只使用<link rel="icon" >
设置favicon
图标即可。如果不设置<link rel="mask-icon">
属性,需要在配置文件中把safari_pinned_tab
的值留空,而不是不设置或注释掉,这样做会使用next 主题中的默认设置,造成favicon
图标显示为Next官网的图标
1、themes/next/layout/_partials/head.swig
此文件内的
1 | <link rel="mask-icon" href="{{ url_for(theme.favicon.safari_pinned_tab) }}?v={{ theme.version }}" color="{{ theme.android_chrome_color }}"> |
替换为
1 | <link rel="icon" > |
2、/themes/next/_config.yml
此文件内的safari_pinned_tab:
设置为空
(之前的设置:#safari_pinned_tab: /images/logo_old.svg
)
关于safari
缓存图标的问题
safari
会对图标按域名进行缓存,从而造成更新图标后不能马上更新显示的问题,需要对缓存的图标进行清理。
- 首先要清理它的缓存:
setting
->privacy
->Manage Website Date
,搜索相关域名,删除即可。 - 磁盘缓存文件:
~/Library/Safari
目录下,删除Template Icons
文件夹,如果不起作用,删除Favicon Cache
,Touch Icons Cache
文件夹