【问题标题】:Are apple-touch-icons always loaded by the browser?浏览器是否总是加载苹果触摸图标?
【发布时间】:2014-09-15 21:15:31
【问题描述】:

我想这个问题的答案是否定的,但是,为了确定,我在这里问:

<link rel="apple-touch-icon* 这样的图标是否总是由浏览器加载(我的意思是,iOS 浏览器也不加载)?

【问题讨论】:

    标签: html hyperlink apple-touch-icon


    【解决方案1】:

    没有。浏览器仅在首次加载时加载 Apple Touch 图标。

    对此进行测试的协议:我在RealFaviconGenerator 的帮助下创建了两个页面(完全披露:我是该站点的作者),几乎相同,并通过 Apache 为它们提供服务。 page1.html 包含:

    <html>
        <head>
            <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png">
            <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png">
            <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png">
            <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144x144.png">
            <link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png">
            <link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png">
            <link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png">
            <link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png">
            <link rel="icon" type="image/png" href="/favicon-196x196.png" sizes="196x196">
            <link rel="icon" type="image/png" href="/favicon-160x160.png" sizes="160x160">
            <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
            <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
            <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
            <meta name="msapplication-TileColor" content="#2b5797">
            <meta name="msapplication-TileImage" content="/mstile-144x144.png">
        </head>
        <body>
            <h1>Page 1</h1>
        </body>
    </html>
    

    page2.html 是同一个h1

    然后,我访问了page1.html,然后是page2.html,并检查了Apache 的日志以检查HTTP 访问。这是我发现的。

    Windows Chrome 36.0.1985.125 m

    导航到第 1 页

    "GET /page1.html HTTP/1.1" 200 662 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"
    "GET /favicon-32x32.png HTTP/1.1" 304 179 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"
    "GET /favicon-16x16.png HTTP/1.1" 304 179 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"
    

    导航到第 2 页

    "GET /page2.html HTTP/1.1" 200 662 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"
    

    因此,Chrome 在首次加载时会加载一些图标,但在访问引用相同图片的另一个页面时不会再次加载这些图标。

    Android Chrome 36.0.1.1985.128

    导航到第 1 页

    "GET /page1.html HTTP/1.1" 200 662 "-" "Mozilla/5.0 (Linux; Android 4.4.2; SM-G900F Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.128 Mobile Safari/537.36"
    "GET /favicon-160x160.png HTTP/1.1" 200 5703 "-" "Mozilla/5.0 (Linux; Android 4.4.2; SM-G900F Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.128 Mobile Safari/537.36"
    "GET /apple-touch-icon-144x144.png HTTP/1.1" 200 9889 "-" "Mozilla/5.0 (Linux; Android 4.4.2; SM-G900F Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.128 Mobile Safari/537.36"
    

    导航到第 2 页

    "GET /page2.html HTTP/1.1" 200 662 "-" "Mozilla/5.0 (Linux; Android 4.4.2; SM-G900F Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.128 Mobile Safari/537.36"
    

    同样的行为。

    iOS7 Safari

    导航到第 1 页

    "GET /page1.html HTTP/1.1" 200 662 "-" "Mozilla/5.0 (iPad; CPU OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53"
    

    换句话说,Safari 在浏览时不会加载任何图标。这是有道理的:它不会在其界面中显示任何图标。

    点击“分享”按钮

    (显示“添加到主屏幕”选项)

    "GET /apple-touch-icon-152x152.png HTTP/1.1" 200 10313 "-" "MobileSafari/9537.53 CFNetwork/672.1.13 Darwin/14.0.0"
    

    绝对有道理。

    导航到第 2 页

    "GET /page2.html HTTP/1.1" 200 662 "-" "Mozilla/5.0 (iPad; CPU OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53"
    

    点击“分享”按钮

    什么都没有发生。同样,这是正常的,图标已经加载了。

    安卓火狐31.0

    导航到第 1 页

    "GET /page1.html HTTP/1.1" 200 662 "-" "Mozilla/5.0 (Android; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0"
    "GET /favicon-196x196.png HTTP/1.1" 200 13393 "-" "Mozilla/5.0 (Android; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0"
    

    导航到第 2 页

    "GET /page2.html HTTP/1.1" 200 662 "-" "Mozilla/5.0 (Android; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0"
    

    【讨论】:

    • 谢谢。这解决了我的顾虑...我担心在第一次加载时浏览器会加载 all 定义的图标... :-( 你只是忘了测试 Mozilla... :-)
    • @MarcoS 哎呀! Android/FF 结果在一分钟前添加。不足为奇:)
    【解决方案2】:

    没有。浏览器不会遵循他们无法识别的链接类型。

    【讨论】:

    • 好。但是,如果它们能识别它们(我想 Chrome 浏览器确实能识别它们),它们会全部加载吗?
    • 为什么你认为 Chrome 可以识别它们?没有理由这样做。
    • 当然。 Android Chrome 会在找到 Apple 触摸图标时加载它。 realfavicongenerator.net/favicon_compatibility
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2013-03-20
    • 2012-10-14
    • 2010-09-05
    • 1970-01-01
    • 2011-12-11
    • 2011-04-17
    相关资源
    最近更新 更多