苹果iOS Safari书签网站图标无法正常显示,添加到主屏幕可以使用

4

我正在尝试让IOS(10.2)和safari上的网站图标正常工作。当我在我的网页上点击“添加到桌面”时,会显示并添加该图标。但是当我尝试创建书签时,我只能得到一个字母占位符图像。据我所知,相同的图标应该用于书签和“添加到桌面”磁贴。

我将以下代码放在head元素中:

<link rel="apple-touch-icon" sizes="76x76" href="apple-touch-icon-76x76.png?v=asdf">
<link rel="apple-touch-icon" sizes="120x120" href="apple-touch-icon-120x120.png?v=asdf">
<link rel="apple-touch-icon" sizes="152x152" href="apple-touch-icon-152x152.png?v=asdf">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon-180x180.png?v=asdf">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png?v=r0RW">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=r0RW">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=r0RW">
<link rel="manifest" href="/manifest.json?v=r0RW">
<link rel="mask-icon" href="/safari-pinned-tab.svg?v=r0RWdpQrAk" color="#5bbad5">
<link rel="shortcut icon" href="/favicon.ico?v=r0RW">
<meta name="theme-color" content="#ffffff">

我正在使用Python的SimpleHTTPServer进行测试,添加到书签和“添加到桌面”按钮都可以正常使用。

10.0.8.109 - - [11/May/2017 18:01:05] "GET /apple-touch-icon-120x120.png?v=asdf
HTTP/1.1" 200 -

但事实上,在Safari中并没有显示任何书签的图标。

2
也许它正常工作,但Safari无法获取图标?是否有基本身份验证? - Jared Chu
我也遇到了同样的问题,你解决了吗? - Dahdoul
2个回答

2

请在浏览器中打开/apple-touch-icon-120x120.png?v=asdf以确保图标有效(确实是一张图片,确实为120x120像素)。

如果可以打开,问题可能来自于iOS Safari。当该浏览器需要显示已添加书签网站的图标时,有时会变得懒惰。您可以尝试以下两种方法:

  • 重试“添加到主屏幕”。尽管听起来很粗糙,但这实际上是一个好方法。特别是如果之前在网站没有图标时多次访问了您自己的网站。您可以将此视为“超级图标缓存问题”。
  • 尝试使用另一个iOS设备。

我尝试了一下,但没什么运气。我正在 https://www.browserstack.com 尝试 IOS 模拟器,但行为是相同的。添加到主屏幕可以工作,但添加书签不行。即使服务器两次请求的是同一张图片.. 具体来说,我正在使用这张图片 https://www.seznam.cz/media/img/seznam-icons/apple-touch-icon-120x120.png (因为它适用于他们,我认为我的图片可能无效,但事实并非如此,因为 seznam 的图片在我的页面上表现出相同的错误行为..) - adekcz
你可以试试RFG的网站图标检查器:https://realfavicongenerator.net/favicon_checker。虽然它不能保证百分之百准确,但我不知道有任何情况下它会说一个图标可用而实际上不行。完全披露:我是这个工具的作者。 - philippe_b
好的,Favicon 检查器给出了良好的结果,但是在 iPad Safari 中 apple-touch-icon 没有显示出来。 - Cerveser
@Cerveser 可能是缓存问题吗?它是否仍然失败,或者图标在几天后终于工作了? - philippe_b

1

这些是Safari在添加书签时请求的文件:

"GET /favicon.ico HTTP/1.1" 200 -
"GET /apple-touch-icon-precomposed.png HTTP/1.1" 200 -
"GET /apple-touch-icon.png HTTP/1.1" 200 -
"GET /apple-touch-icon-120x120-precomposed.png HTTP/1.1" 200 

只需确保它们全部可用,它就应该可以工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接