为什么这个苹果触摸图标不起作用?

时间:2011-07-24 14:18:45

标签: iphone html mobile safari apple-touch-icon

我的网站上有以下代码:

<link rel="apple-touch-icon" href="http://website.com/images/apple-touch-icon.png" />

当我在Firefox中查看源并单击href属性时,图标显示(因此它不是404错误)。

将代码添加到http://website.com/mobile/index.phphttp://website.com/mobile/page.php这样的页面并将该页面添加到iPhone主屏幕时,该图标工作正常,但当页面网址类似于http://website.com/pagehttp://website.com/index图标未显示。

Safari选项中提供的“网站调试控制台”中没有出现任何错误,我已尝试清除缓存和Cookie。

我还使用标记为<base href="http://website.com/mobile/" />的网站,该网站同时显示http://website.com/mobile/index.phphttp://website.com/index。但是我无法看到它会如何影响它,因为apple-touch-icon使用了一个完整的URL。

3 个答案:

答案 0 :(得分:18)

这仅适用于具有有效且可信的安全证书的HTTP或HTTPS站点。

如果出现证书错误,iOS将无法加载图片。临时信任Safari中的证书以获取页面将不信任主屏幕快捷方式的证书。如果您使用的是自签名证书,则必须在操作系统级别将不受信任的根证书添加为可信证书。

  1. 在iOS设备上,导航至包含指向.crt文件
  2. 的链接的页面
  3. 点按链接
  4. 通过所有确认屏幕批准/安装

答案 1 :(得分:3)

尝试使用相对网址:

<link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />

它应该转到您的基本目录并在/images中找到该图标。

答案 2 :(得分:0)

经过几天的反复试验,我似乎找到了解决方案。

在撰写本文时,本地信任自签名证书似乎不起作用。考虑到 Apple 更新的 requirements for trusted certificates,看起来他们在加强各方面的安全性方面是认真的。

以下是您可以尝试的方法:

  1. 首先,请确保您拥有有效的图标。您可以使用 realfavicongenerator.net 将单个图像渲染为多个格式正确且大小合适的图像,以帮助确保 Safari 等浏览器实际使用它们。

  2. 您需要有效/公开信任的 SSL 证书。在我将 apple-touch-icon.png 放入我的谷歌驱动器并链接到该图标后,我得出了这个结论。它有效!...但是...不是最好的解决方案... 我已经尝试了所有方法来使自签名 SSL 证书正常工作。但事实是,浏览器依赖经过验证的证书颁发机构 (CA) 来确定证书的真实性。因此,最有可能做的最简单的事情是获取受信任的证书。幸运的是,有 CertbotCloudFlare 等免费选项可以完成这项工作。

查看 DigitalOcean 的 this Ubuntu guide 以了解如何使用 HTTPS 并使用 Certbot 为其生成 SSL 证书。