2013-02-20 3 views
24

Abbiamo Continuo a ricevere 404 del per i seguenti due file:Continuo a ricevere 404 di Apple-touch-icon.png

/apple-touch-icon-precomposed.png: 685 Time(s) 
/apple-touch-icon.png: 523 Time(s) 

mi sono stati purga mio archivio sito web mobile per il colpevole di questa 404, e non c'è inserire nel mio codice che sta indirizzando a apple-touch-icon.png.

Esecuzione di un Find in folder... nel Sublime Text 2 fornisce risultati zero per apple-touch-icon:

Searching 100 files for "apple-touch-icon" 

0 matches across 0 files 

stiamo usando il meta tag di Apple per webapps:

<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name="apple-mobile-web-app-status-bar-style" content="black"> 

Will utilizzo di questi meta tag causano un iPhone per cercare uno apple-touch-icon di default? Non stiamo fornendo un'icona, ma dovremmo esserlo? Vorremmo davvero rimuovere questo 404.

Navigare in Apple Developer Documentation non ha fornito suggerimenti che rafforzino la mia teoria.

La trama si infittisce ulteriormente quando abbiamo scoperto che questo sta accadendo su iOS e Android, indipendentemente dal browser. Firefox, Safari, & Chrome stanno tutti cercando di trovare questo apple-touch-icon.

Ho usato HTML5 Mobile Boilerplate come base per la mia WebApp, che ha un file chiamato helper.js. helper.js ha questa funzione all'interno di esso, che ho rimosso dal nostro codice:

/** 
    * iOS Startup Image helper 
    */ 

    MBP.startupImage = function() { 
     var portrait; 
     var landscape; 
     var pixelRatio; 
     var head; 
     var link1; 
     var link2; 

     pixelRatio = window.devicePixelRatio; 
     head = document.getElementsByTagName('head')[0]; 

     if (navigator.platform === 'iPad') { 
      portrait = pixelRatio === 2 ? 'img/startup/startup-tablet-portrait-retina.png' : 'img/startup/startup-tablet-portrait.png'; 
      landscape = pixelRatio === 2 ? 'img/startup/startup-tablet-landscape-retina.png' : 'img/startup/startup-tablet-landscape.png'; 

      link1 = document.createElement('link'); 
      link1.setAttribute('rel', 'apple-touch-startup-image'); 
      link1.setAttribute('media', 'screen and (orientation: portrait)'); 
      link1.setAttribute('href', portrait); 
      head.appendChild(link1); 

      link2 = document.createElement('link'); 
      link2.setAttribute('rel', 'apple-touch-startup-image'); 
      link2.setAttribute('media', 'screen and (orientation: landscape)'); 
      link2.setAttribute('href', landscape); 
      head.appendChild(link2); 
     } else { 
      portrait = pixelRatio === 2 ? "img/startup/startup-retina.png" : "img/startup/startup.png"; 
      portrait = screen.height === 568 ? "img/startup/startup-retina-4in.png" : portrait; 
      link1 = document.createElement('link'); 
      link1.setAttribute('rel', 'apple-touch-startup-image'); 
      link1.setAttribute('href', portrait); 
      head.appendChild(link1); 
     } 

     //hack to fix letterboxed full screen web apps on 4" iPhone/iPod 
     if ((navigator.platform === 'iPhone' || 'iPod') && (screen.height === 568)) { 
      if (MBP.viewportmeta) { 
       MBP.viewportmeta.content = MBP.viewportmeta.content 
        .replace(/\bwidth\s*=\s*320\b/, 'width=320.1') 
        .replace(/\bwidth\s*=\s*device-width\b/, ''); 
      } 
     } 
    }; 

Dopo la rimozione di questo, ancora otteniamo 404 di. Sono perplesso. Qualsiasi aiuto è molto apprezzato.

+2

Chrome su iOS sarà anche prenderlo perché usiamo la WebView iOS che Safari utilizza per rendere il browser – Kinlan

+0

Possibile duplicato del [Perché l'errore che ottengo per apple -touch-icon-precomposed.png] (http://stackoverflow.com/questions/12480497/why-am-i-getting-error-for-apple-touch-icon-precomposed-png) –

risposta

14

L'utilizzo di questi meta tag fa sì che un iPhone cerchi un'icona di tocco di apple per impostazione predefinita? Non stiamo fornendo un'icona, ma dovremmo essere ? Vorremmo davvero rimuovere questo 404.

Sì. Wenn si aggiunge

<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name="apple-mobile-web-app-status-bar-style" content="black"> 

al tuo sito significa che l'utente può creare un segnalibro sul suo schermo a casa che non è aperto in Safari, ma in una WebView che sembra un'app "nativa". Dovresti fornire queste immagini come tipo di icona dell'app per la schermata principale.

questo potrebbe essere il suggerimento che stavate cercando: http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

+0

Grande, grazie per il risposta e il link. Questo ha decisamente senso per me. Sono ancora un po 'confuso sul motivo per cui anche questi tag causano anche i 404 per Firefox e Chrome sui browser mobili su Android. Rimuoverò i meta tag e tieni d'occhio i log degli errori per ora. Grazie! – robabby

+1

Questa funzione è chiamata web clip e potrebbe anche essere supportata da altri browser. Chrome, ad esempio, ti consente di posizionare alcuni segnalibri nella schermata "Nuova scheda". Questi segnalibri hanno anche icone grandi ma ovviamente hai ragione è un po 'di confusione. –

+6

Ho ricevuto quei colpi sul mio sito web senza i meta tag ... – Calimo