{"id":3635,"date":"2013-09-30T09:11:41","date_gmt":"2013-09-30T07:11:41","guid":{"rendered":"https:\/\/www.creativejuiz.fr\/blog\/?p=3635"},"modified":"2013-09-29T22:34:48","modified_gmt":"2013-09-29T20:34:48","slug":"ios-provoque-404-site-web-apple-touch-icon","status":"publish","type":"post","link":"https:\/\/www.creativejuiz.fr\/blog\/veille-technologique\/ios-provoque-404-site-web-apple-touch-icon","title":{"rendered":"iOS provoque des 404 sur votre site Web"},"content":{"rendered":"<p>Et l\u00e0 en lisant le titre vous vous dites : \u00ab\u00a0mais mais mais&hellip; qu&rsquo;est-ce qu&rsquo;il va encore nous raconter&nbsp;?!\u00a0\u00bb. Je vais vous conter une histoire qui s&rsquo;est d\u00e9roul\u00e9e il y a peu de temps et qui m&rsquo;a bien surpris, et sur plusieurs aspects. Cela se passe sur iOS, smartphones et tablettes confondus (a priori)<!--more--><\/p>\n<p>Loin de moi la possibilit\u00e9 de tester la chose avec tous les appareils, mais d&rsquo;apr\u00e8s ce que j&rsquo;ai pu tester, iOS provoque quasi in\u00e9vitablement des 404 dans les logs de votre serveur en automatisant certaines requ\u00eates \u00e0 des moments bien pr\u00e9cis.<\/p>\n<h2>Les sympt\u00f4mes<\/h2>\n<p>Il n&rsquo;y a pas longtemps, un client revient vers moi pour me pr\u00e9ciser que son tout nouveau site sous WordPress lui renvoie des erreurs 404. M&rsquo;envoyant une liste des URLs issues des logs de son serveur, je me rends compte que des fichiers PNG sont manquants.<\/p>\n<pre><code>\/apple-touch-icon-114x114-precomposed.png\r\n\/apple-touch-icon-114x114.png<\/code><\/pre>\n<p>Ces appels avaient la particularit\u00e9 de ne pas avoir de <em>referer<\/em> (page vue pr\u00e9c\u00e9demment par le visiteur, qui contient donc th\u00e9oriquement le lien vers les ressources pr\u00e9cit\u00e9es).<\/p>\n<p>Le hic c&rsquo;est que ce site n&rsquo;\u00e9tait pas pr\u00e9vu responsive et qu&rsquo;aucun appel n&rsquo;\u00e9tait fait explicitement dans le code source (il faut normalement utiliser des balises <code class=\"element\">link<\/code> sp\u00e9cifiques).<br \/>\nJe v\u00e9rifie donc sur l&rsquo;onglet r\u00e9seau de mon outil de d\u00e9bogage : rien \u00e0 signaler.<\/p>\n<h2>Un tiens vaut mieux que deux tu l&rsquo;auras<\/h2>\n<p>N&rsquo;ayant aucune erreur visible, et compte tenu des deux seules images attendues provoquant ces erreurs, je me suis dit qu&rsquo;il fallait tester en live \u00e0 partir d&rsquo;un terminal Apple. J&rsquo;ai donc test\u00e9 \u00e0 partir d&rsquo;une mini-tablette iPad pour voir \u00e0 quel moment la visite du site sur ce terminal pouvait provoquer ces erreurs.<br \/>\nIl pouvait tr\u00e8s bien s&rsquo;agir d&rsquo;une tentative d&rsquo;appel comme un navigateur s&rsquo;attend \u00e0 trouver un favicon.ico \u00e0 la racine.<\/p>\n<p>Bref, avec mon coll\u00e8gue <a href=\"http:\/\/blup.fr\">Rodolphe<\/a> nous avons donc lanc\u00e9 un b\u00eate test sur notre serveur avec les logs en live sous notre nez. Nous avons donc cr\u00e9\u00e9 une page web vide.<\/p>\n<ul>\n<li>Connexion \u00e0 la page web : pas d&rsquo;erreur<\/li>\n<li>Ouverture des options de partage de la page&#8230; Paf !<\/li>\n<\/ul>\n<p>Deux erreurs sont provoqu\u00e9es d\u00e8s que le bouton :<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2013\/09\/share-button-ios.png\" alt=\"Bouton de partage iOS\" width=\"33\" height=\"32\" class=\"alignnone size-full wp-image-3663\" \/><br \/>\nest activ\u00e9 par l&rsquo;utilisateur.<\/p>\n<p>En effet la commande \u00ab\u00a0Sur l&rsquo;\u00e9cran d&rsquo;accueil\u00a0\u00bb affiche une pr\u00e9visualisation de l&rsquo;ic\u00f4ne qui pourrait s&rsquo;afficher sur l&rsquo;accueil de votre smartphone. Pour cela iOS fait plusieurs requ\u00eates vers des noms pr\u00e9cis d&rsquo;ic\u00f4nes, puis s&rsquo;il ne les trouve pas il cr\u00e9\u00e9 une miniature de la page en guise d&rsquo;ic\u00f4ne.<\/p>\n<h2>Conclusion<\/h2>\n<p>Difficile de conclure simplement&hellip;<br \/>\nFaudrait-il syst\u00e9matiquement cr\u00e9er des ic\u00f4nes ? <del>Cracher sur Apple ?<\/del> Ou plut\u00f4t ignorer simplement les 404 qui vont s&rsquo;afficher dans vos logs ? \u00c0 vous de voir !<\/p>\n<div class=\"sources\">\n<h2>Liens utiles<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/audreyr\/favicon-cheat-sheet\">Favicon Cheat Sheet &#8211; GitHub<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Et l\u00e0 en lisant le titre vous vous dites : \u00ab\u00a0mais mais mais&hellip; qu&rsquo;est-ce qu&rsquo;il va encore nous raconter&nbsp;?!\u00a0\u00bb. Je vais vous conter une histoire qui s&rsquo;est d\u00e9roul\u00e9e il y a peu de temps et qui m&rsquo;a bien surpris, et sur plusieurs aspects. Cela se passe sur iOS, smartphones et tablettes confondus (a priori)<\/p>\n","protected":false},"author":4,"featured_media":3723,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","footnotes":""},"categories":[12],"tags":[561,562,228,221],"coauthors":[],"class_list":["post-3635","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-veille-technologique","tag-561","tag-apple-touch-icon","tag-astuce","tag-ios"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/3635","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/comments?post=3635"}],"version-history":[{"count":0,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/3635\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media\/3723"}],"wp:attachment":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media?parent=3635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/categories?post=3635"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/tags?post=3635"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/coauthors?post=3635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}