Waarom krijg ik een foutmelding voor apple-touch-icon-precomposed.png

Ik heb een nieuw rails3-project gemaakt, maar ik zie de volgende logs vaak in mijn serverlogs. Waarom krijg ik deze verzoeken en hoe kan ik deze vermijden?

Gestart met GET “/apple-touch-icon-precomposed.png” voor 192.168.6.2 op
2012-09-18 20:03:53 +0530

ActionController::RoutingError (Geen route komt overeen met [GET]
“/apple-touch-icon-precomposed.png”):

Ik heb deze link nergens gegeven en wil deze afbeelding nergens weergeven. Ik heb geen idee waarom deze bron wordt geladen.


Antwoord 1, autoriteit 100%

Ik denk dat Apple-apparaten die verzoeken doen als de eigenaar van het apparaat de site eraan toevoegt. Dit is het equivalent van het favicon. Om dit op te lossen, voegt u 2 100-100 png-bestanden toe, slaat u deze op als apple-touch-icon-precomposed.png en apple-touch-icon.png en uploadt u deze naar de hoofdmap van de server. Daarna zou de fout verdwenen moeten zijn.

Ik zag veel verzoeken voor apple-touch-icon-precomposed.png en apple-touch-icon.png in de logs die probeerden de afbeeldingen uit de hoofdmap van de site te laden. Ik dacht eerst dat het een verkeerde configuratie was van het mobiele thema en de plug-in, maar kwam er later achter dat Apple-apparaten die verzoeken doen als de eigenaar van het apparaat de site eraan toevoegt.

Bron: Waarom webmasters hun 404-foutlogboek moeten analyseren (maart 2012; door Martin Brinkmann)


Antwoord 2, autoriteit 32%

Als een gebruiker van de Safari-webbrowser (Apple-apparaten) uw site bezoekt. De browser probeert het sitepictogram op te halen als het niet is gedefinieerd in <head> in de volgende volgorde:

  1. apple-touch-icon-57×57-precomposed.png
  2. apple-touch-icon-57×57.png
  3. apple-touch-icon-precomposed.png
  4. apple-touch-icon.png

Om dit probleem op te lossen, definieert u een pictogram voor Safari-webbrowsers of Apple-apparaten. Voeg zoiets als dit toe aan het hoofdgedeelte van uw site:

<link rel="apple-touch-icon" href="/custom_icon.png"/>

Als u <head> schoon wilt houden, upload dan het pictogram met de juiste naam naar de hoofdmap van uw site.

De standaardpictogramgrootte is 57px.

U kunt meer details vinden in de iOS-ontwikkelaarsbibliotheek .


Antwoord 3, autoriteit 4%

Als u hier bent geëindigd met googlen, is dit een eenvoudige configuratie om deze fout te voorkomen, vol met logbestanden van de webserver:

Apache virtualhost

Redirect 404 /apple-touch-icon-precomposed.png
<Location /apple-touch-icon-precomposed.png>
    ErrorDocument 404 "apple-touch-icon-precomposed does not exist"
</Location>

Nginx-serverblokkering:

location =/apple-touch-icon-precomposed.png {
        log_not_found off;
        access_log off;
}

PS: Het is mogelijk dat je ook apple-touch-icon.png en favicon.ico wilt toevoegen.


Antwoord 4, autoriteit 2%

Houd er rekening mee dat dit zelfs kan gebeuren als de gebruiker de site NIET als bladwijzer heeft toegevoegd aan zijn iOS-startscherm. Telkens wanneer u bijvoorbeeld een pagina opent met Chrome voor iOS, wordt er een GET "/apple-touch-icon-precomposed.png".

Ik heb deze en andere niet-HTML 404-verzoeken als volgt in mijn ApplicationController afgehandeld:

respond_to do |format|
  format.html { render :template => "error_404", :layout => "errors", :status => 404 }
  format.all { render :nothing => true, :status => 404 }
end

Het antwoord format.all zorgt voor afbeeldingen zoals dit PNG-bestand (dat niet bestaat voor mijn site).


Antwoord 5, autoriteit 2%

Ik heb het eindelijk opgelost!! Het is een Web Clip-functie op Mac-apparaten. Als een gebruiker uw website in Dock o Desktop wil toevoegen, vraagt ​​deze om dit pictogram.

You may want users to be able to add your web application 
or webpage link to the Home screen. These links, represented 
by an icon, are called Web Clips. Follow these simple steps 
to specify an icon to represent your web application or webpage
on iOS.

meer info: https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/ConfigureWebApplications/ConfigureWebApplications.html

hoe op te lossen?:
Voeg een pictogram toe om het probleem op te lossen.


Antwoord 6, autoriteit 2%

Als je het niet belangrijk vindt dat het pictogram er mooi uitziet op alle soorten Apple-apparaten, voeg dan gewoon

get '/:apple_touch_icon' => redirect('/icon.png'), constraints: { apple_touch_icon: /apple-touch-icon(-\d+x\d+)?(-precomposed)?\.png/ }

naar je config/routes.rb-bestand en wat icon.png naar je public-directory. Omleiden naar 404.html in plaats van icon.png werkt ook.


Antwoord 7, autoriteit 2%

Er is een juweeltje zoals quiet_assets die deze fouten in je logbestanden het zwijgen oplegt als je, zoals ik, wilde deze bestanden niet aan je Rails-app toevoegen:

https://github.com/davidcelis/quiet_safari


Antwoord 8

Een alternatieve oplossing is om eenvoudig een route toe te voegen aan uw routes.rb

Het vangt in feite het Apple-verzoek op en geeft een 404 terug aan de client. Op deze manier zijn je logbestanden niet rommelig.

# routes.rb at the near-end
match '/:png', via: :get, controller: 'application', action: 'apple_touch_not_found', png: /apple-touch-icon.*\.png/

voeg vervolgens een methode ‘apple_touch_not_found’ toe aan uw application_controller.rb

# application_controller.rb
def apple_touch_not_found
  render  plain: 'apple-touch icons not found', status: 404
end

Antwoord 9

Bij mij gebeurt hetzelfde. En ja, zoals @Joao Leme zei, het lijkt erop dat het verband houdt met een gebruiker die een bladwijzer maakt voor een site op het startscherm van zijn apparaat.

Ik heb echter gemerkt dat hoewel er een fout in het logboek staat, dit achter de schermen gebeurt en dat de gebruiker de fout nooit ziet. Ik neem aan dat het apparaat een verzoek doet om het aanraakpictogram dat specifiek is voor de resolutie (die er niet is) totdat het standaard het algemene apple-touch-icon of apple-touch-icon-precomposed, indien aanwezig, of genereert anders een kleine schermafbeelding van de huidige pagina.

FWIW, zet de iconen in de /public directory.


Antwoord 10

Maak eenvoudig bestanden van nul met de juiste namen.

Het verzoek zal worden ingewilligd zonder extra gegevensoverdracht of verdere logregels.


Antwoord 11

Probeer de link van

. te wijzigen

/apple-touch-icon-precomposed.png 

naar:

<%=asset_path "apple-touch-icon-precomposed.png" %>

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes