我的网站上有以下代码:
<link rel="apple-touch-icon" href="http://website.com/images/apple-touch-icon.png" />
当我在Firefox中查看源并单击href属性时,图标显示(因此它不是404错误)。
将代码添加到http://website.com/mobile/index.php
或http://website.com/mobile/page.php
这样的页面并将该页面添加到iPhone主屏幕时,该图标工作正常,但当页面网址类似于http://website.com/page
或http://website.com/index
图标未显示。
Safari选项中提供的“网站调试控制台”中没有出现任何错误,我已尝试清除缓存和Cookie。
我还使用标记为<base href="http://website.com/mobile/" />
的网站,该网站同时显示http://website.com/mobile/index.php
和http://website.com/index
。但是我无法看到它会如何影响它,因为apple-touch-icon使用了一个完整的URL。
答案 0 :(得分:18)
这仅适用于具有有效且可信的安全证书的HTTP或HTTPS站点。
如果出现证书错误,iOS将无法加载图片。临时信任Safari中的证书以获取页面将不信任主屏幕快捷方式的证书。如果您使用的是自签名证书,则必须在操作系统级别将不受信任的根证书添加为可信证书。
答案 1 :(得分:3)
尝试使用相对网址:
<link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />
它应该转到您的基本目录并在/images
中找到该图标。
答案 2 :(得分:0)
经过几天的反复试验,我似乎找到了解决方案。
在撰写本文时,本地信任自签名证书似乎不起作用。考虑到 Apple 更新的 requirements for trusted certificates,看起来他们在加强各方面的安全性方面是认真的。
以下是您可以尝试的方法:
首先,请确保您拥有有效的图标。您可以使用 realfavicongenerator.net 将单个图像渲染为多个格式正确且大小合适的图像,以帮助确保 Safari 等浏览器实际使用它们。
您需要有效/公开信任的 SSL 证书。在我将 apple-touch-icon.png 放入我的谷歌驱动器并链接到该图标后,我得出了这个结论。它有效!...但是...不是最好的解决方案... 我已经尝试了所有方法来使自签名 SSL 证书正常工作。但事实是,浏览器依赖经过验证的证书颁发机构 (CA) 来确定证书的真实性。因此,最有可能做的最简单的事情是获取受信任的证书。幸运的是,有 Certbot 或 CloudFlare 等免费选项可以完成这项工作。
查看 DigitalOcean 的 this Ubuntu guide 以了解如何使用 HTTPS 并使用 Certbot 为其生成 SSL 证书。