这是一个非常好用的技巧(尽管需要适度的简单图像处理)。此外,请注意本答案底部的注释,以免完全丢失此修复并不得不重新进行。问题似乎在于网站提供的图标是为书签栏设计的,而不是Safari收藏夹屏幕,后者具有较大的图标(至少144 x 144)。更新:某些较新版本的Mac OS(如Monterey和可能的Big Sur)使用128 x 128的图标大小。

这些图标本身存储在~/Library/Safari/Touch Icons Cache/Images/目录下,文件名非常长(类似于"908F6BBF6DA814ABAF917C4E7BB9E36F.png")。当添加一个新的收藏夹(比如原问题中的纽约时报),并且图标能正确显示在收藏夹屏幕上时,就会在前面提到的缓存文件夹中出现一个144 x 144像素的png文件,一切都很好。然而,如果添加了Gmail,并且出现了一个丑陋、不明显的G字母而不是漂亮的Gmail图标,那么这意味着在缓存文件夹中出现了一个小的png文件(设计用于书签栏而不是收藏夹屏幕)。为了更正图标,只需创建另一个具有正确的144 x 144分辨率的png文件(请参见下面的注释),然后使用该创建的png文件替换Touch Icons Cache文件夹中的小的“错误”文件,确保保持文件名不变。退出Safari(Command-Q)并重新启动,图标将完美地显示出来,如下所示:

请注意,Gmail和Google Drive现在具有正确的图标。 我还必须为《经济学人》做同样的事情,因为该网站也没有提供合适的144 x 144 favicon。

要以非常简单的方式使用Preview创建144 x 144图标,只需下载图标(Gmail、Google Drive)或其他高分辨率图像,在预览中打开,然后选择工具->调整大小到144宽度。 现在将此图像放在一边并将其命名为“图像A”。 请注意,透明度有时会对Safari网站图标造成问题(例如,如果图片区域是无色的,则这些区域实际上显示的颜色可能不一致)。 如果发生这种情况,我们可以制作白色背景。 要执行此操作,只需执行command-shift-4,并拖动屏幕上任何白色部分的矩形部分,然后获取结果截图并将其调整大小为144 x 144。 最后,从之前的“图像A”中复制并粘贴到这个白色空间中。 这通常会创建一个非常漂亮的图标。

重要提示:如果您在Safari首选项中启用了"开发人员"菜单项(例如位于屏幕顶部附近的"书签"和"窗口"旁边),请确保不要选择"清除缓存",否则这将删除您创建的所有图标。另外,仅清除历史记录也会产生相同的效果。或者,如果您真的想要清除历史记录或清除缓存以获得更多磁盘空间,请在清除之前保存您创建的自定义图标;这样您就可以在之后将它们放回去,而无需再次创建。

缓存有时也会自动清除,因此最好的做法是创建图标的备份。

更新:如果您不预计经常向收藏夹中添加或删除网站,您可以锁定图像文件夹(~/Library/Safari/Touch Icons Cache/Images),以防止计算机覆盖或删除您刚刚添加的图标。右键单击文件夹,选择获取信息,然后勾选锁定按钮。您的收藏夹图标现在应该能够抵抗系统的随机覆盖。请注意,如果您清除了某些历史记录,您可能会发现一些图标似乎已经消失:在这种情况下,只需退出 Safari 应用程序(完全退出应用程序 - 不仅关闭窗口),重新打开 Safari 时,您的图标应该恢复正常(前提是您在清除历史记录之前锁定了图像文件夹)。将来当您想将另一个网站添加到收藏夹时,您将需要在将网站添加为收藏之前解锁图像文件夹然后。然后,在按照上述步骤确保图标符合您的要求之后,在退出 Safari 应用程序之前重新锁定图像文件夹。最后,作为预防措施,我建议您将新图标的副本添加到备份中。

- xdavidliu62我建议你在制作任何图标时都要备份,因为缓存文件夹可能随时被清除,有时会发生意外。 - Oion Akif请注意,透明度会给Safari的网站图标带来麻烦。对我来说似乎运行良好。对你来说也是如此,就像你的Google Drive图标一样,对吗? - Oion Akif1啊,Skeleton Bow,你说得对,关于Google Drive图标的问题,它们确实都有透明背景并且显示正常。然而,我之所以添加那个注释是因为我的经济学家图标上的“透明”文字有一个红色的条纹,并且有时候会将文字显示为白色或黑色,后者看起来非常奇怪。为了让文字正确显示,我不得不加入一个白色背景。我稍微修改了我的回答以反映上述情况。 - xdavidliu谢谢!但是哎呀!我正在遇到你提到的问题。我打算试着找出到底是什么导致了这个透明度问题... - Oion Akif答案说“简单地创建另一个具有正确的144 x 144分辨率的png文件”。我该如何做到这一点? - David W@DavidW 我在下一段中解释了如何做到这一点。 - xdavidliu