मुझे Apple-touch-icon-precomposed.png के लिए त्रुटि क्यों हो रही है


247

मैंने एक नई रेल 3 परियोजना बनाई है, लेकिन मैं अपने सर्वर लॉग में कई बार निम्नलिखित लॉग देख रहा हूं। मुझे ये अनुरोध क्यों मिल रहे हैं और मैं इनसे कैसे बच सकता हूं?

192.168.6.2 को 2012-09-18 20:03:53 +0530 के लिए "/apple-touch-icon-precomposed.png" शुरू किया

ActionController :: RoutingError (कोई मार्ग नहीं मिलता है [GET] "/apple-touch-icon-precomposed.png"):

मैंने यह लिंक कहीं भी नहीं दिया है और मैं इस छवि को कहीं भी प्रस्तुत नहीं करना चाहता। मैं इस बात से सहमत हूँ कि इस संसाधन को लोड करने की कोशिश क्यों की जा रही है।


4
मैं अपने .net परियोजना में एक ही सटीक बात कर रहा हूँ। माणिक से कोई लेना-देना नहीं है। मुझे समझ में नहीं आता कि यह मानक 404 क्यों नहीं है त्रुटि नहीं मिली है। लेकिन यह नहीं है। बस एक रूटिंग त्रुटि। i get: पथ '/apple-touch-icon-precomposed.png' के नियंत्रक को IController नहीं मिला या लागू नहीं किया गया।
राशिफल

जवाबों:


221

मुझे लगता है कि ऐप्पल डिवाइस उन अनुरोधों को बनाते हैं यदि डिवाइस मालिक इसमें साइट जोड़ता है। यह फेविकॉन के बराबर है। हल करने के लिए, 2 100 × 100 पीएनजी फाइलें जोड़ें, इसे ऐप्पल-टच-आइकन-प्रीकंपोज्ड।पीएनजी और ऐप्पल-टच-आइकॉन के रूप में सहेजें। इसे सर्वर की रूट डायरेक्टरी में अपलोड करें। उसके बाद, त्रुटि चली जानी चाहिए।

मैंने लॉग में ऐप्पल-टच-आइकन-प्रीकंपोज्ड.पीएनजी और ऐप्पल-टच-आइकन.पिंग के लिए बहुत सारे अनुरोधों पर ध्यान दिया, जो साइट की रूट डायरेक्टरी से छवियों को लोड करने की कोशिश करते थे। मैंने पहले सोचा था कि यह मोबाइल थीम और प्लगइन का गलत मेल है, लेकिन बाद में पता चला कि ऐप्पल डिवाइस उन अनुरोधों को बनाते हैं यदि डिवाइस मालिक इसे साइट जोड़ता है।

स्रोत: क्यों वेबमास्टर्स अपने 404 त्रुटि लॉग का विश्लेषण करना चाहिए (मार्च 2012, मार्टिन Brinkmann द्वारा)


52
मुझे एक अच्छा लेख मिला जिसमें वह सब कुछ था जो मैं जानना चाहता था (और अधिक): mathiasbynens.be/notes/touch-icons
एलेक्सिस

रूट डायरेक्टरी के साथ आपका मतलब ऐप / पब्लिक डायरेक्टरी या पब्लिक डायरेक्टरी से है?
बेंगाला

मेरा मानना ​​है कि उपरोक्त लेखक का अर्थ है कॉन्फ़िगर वेब दस्तावेज़-रूट निर्देशिका, उदाहरण के लिए Apache 2.4 में यह आमतौर पर / var / www / htdocs
Hgehlhausen

70

यदि सफारी वेब ब्राउज़र (Apple डिवाइस) का उपयोगकर्ता आपकी साइट पर जाता है। ब्राउज़र साइट आइकन प्राप्त करने का प्रयास करता है यदि इसे <head>निम्नलिखित क्रम में परिभाषित नहीं किया गया है:

  1. सेब के स्पर्श आइकन-57x57-precomposed.png
  2. सेब के स्पर्श आइकन-57x57.png
  3. सेब के स्पर्श आइकन-precomposed.png
  4. सेब के स्पर्श icon.png

इस समस्या को हल करने के लिए या तो सफारी वेब ब्राउज़र या ऐप्पल डिवाइस के लिए एक आइकन परिभाषित करें। अपनी साइट के मुख्य भाग में ऐसा कुछ जोड़ें:

<link rel="apple-touch-icon" href="https://stackoverflow.com/custom_icon.png"/>

यदि आप <head>साफ रखना चाहते हैं तो उचित नाम के साथ अपनी साइट के रूट डायर पर आइकन अपलोड करें।

डिफ़ॉल्ट आइकन आकार 57px है

आप iOS डेवलपर लाइब्रेरी पर अधिक जानकारी पा सकते हैं ।


इस परिभाषा के साथ भी, मुझे अभी भी 404s ऐप्पल-टच-आइकॉन-प्रीकम्पोज़्ड के लिए मिलते हैं। पीएनजी
क्रिस हैन्स

3
अब यह अनुशंसा की जाती है कि नए आईपैड के लिए समायोजित करने के लिए डिफ़ॉल्ट आइकन का आकार 152 × 152 पिक्सेल हो।
एंड्रयू लोट

2
मुझे अभी भी वही त्रुटि मिली है, साथ ही custom_icon.png के लिए एक अतिरिक्त रूटिंग त्रुटि भी है। वैसे, मुझे OSX 10.10.2 पर विकास में चलने वाली इन त्रुटियों को ब्राउज़र के रूप में सफारी 8.0.3 का उपयोग करके मिलता है।
7stud

8

यदि आपने यहां गुग्लिंग समाप्त किया है, तो वेब सर्वर लॉग से भरी इस त्रुटि को रोकने के लिए यह एक सरल कॉन्फ़िगरेशन है:

अपाचे 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 सर्वर ब्लॉक:

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

पुनश्च: क्या आप जोड़ना चाहते हैं apple-touch-icon.pngऔर favicon.icoभी संभव है।


5

ध्यान दें कि यह तब भी हो सकता है जब उपयोगकर्ता ने अपने iOS होम स्क्रीन पर साइट को बुकमार्क नहीं किया है - उदाहरण के लिए, किसी भी समय आप iOS के लिए क्रोम का उपयोग करके एक पृष्ठ खोलते हैं, यह एक करता है GET "/apple-touch-icon-precomposed.png"

मैंने अपने ApplicationController में इस और अन्य गैर- HTML 404 अनुरोधों को संभाला है:

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

format.allप्रतिक्रिया इस PNG फ़ाइल (जो मेरी साइट के लिए मौजूद नहीं है) के रूप में छवियों का ख्याल रखता है।


4

वहाँ की तरह एक मणि है quiet_assets कि आपके लॉग में इन त्रुटियों चुप्पी जाएगा अगर, मेरे जैसे, आप अपने रेल अनुप्रयोग के लिए इन फ़ाइलों को जोड़ने के लिए नहीं करना चाहता था:

https://github.com/davidcelis/quiet_safari


यह सबसे अच्छा समाधान है ... यदि आप लॉगिंग को बाधित नहीं करते हैं तो निराशा और भारी लॉग फ़ाइलों के अलावा कुछ नहीं। जब Apple निर्णय लेता है तो आकार में परिवर्तन का अनुरोध किया जाता है ... हमें एक ही रफ़ फ़ेविकॉन के अधिक संस्करणों के साथ पीछा करते हुए।
वैनबॉम

4

यदि आप Apple डिवाइस के सभी प्रकार पर सुंदर दिखने वाले आइकन के बारे में परवाह नहीं करते हैं, तो बस जोड़ें

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

आपकी config/routes.rbफ़ाइल और icon.pngआपकी publicनिर्देशिका के लिए कुछ । कार्यों के 404.htmlबजाय पुनर्निर्देशन icon.pngभी।


यहां ठीक काम किया।
वेलिंगटन 1993

3

मैंने आखिर हल कर दिया !! यह मैक डिवाइस पर एक वेब क्लिप सुविधा है। यदि कोई उपयोगकर्ता अपनी वेबसाइट को डॉक ओ डेस्कटॉप में जोड़ना चाहता है तो वह इस आइकन का अनुरोध करता है।

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.

अधिक जानकारी: https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/Configuring.ebApplications.html

कैसे हल करें ?: समस्या को हल करने के लिए एक आइकन जोड़ें।


2

एक वैकल्पिक समाधान के लिए बस अपने लिए एक मार्ग को जोड़ने के लिए है routes.rb

यह मूल रूप से Apple अनुरोध को पकड़ता है और क्लाइंट को 404 वापस प्रदान करता है। इस तरह आपकी लॉग फाइलें बंद नहीं होती हैं।

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

फिर अपने एप्लिकेशन_कंट्रोलर.आरबी में एक विधि 'apple_touch_not_found' जोड़ें

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

0

मेरे लिए एक ही बात हो रही है। और हां, जैसा कि @ जोआओ लेमे ने कहा, ऐसा लगता है कि यह किसी उपयोगकर्ता द्वारा अपने डिवाइस होमस्क्रीन पर साइट को बुकमार्क करने से संबंधित है।

हालाँकि, मैंने देखा कि भले ही लॉग में कोई त्रुटि है, यह पर्दे के पीछे हो रहा है और उपयोगकर्ता कभी भी त्रुटि नहीं देखता है। मुझे लगता है कि डिवाइस टच-आइकन के लिए अपने रिज़ॉल्यूशन के लिए एक अनुरोध करता है (जो वहां नहीं है) जब तक कि सामान्य रूप से डिफ़ॉल्ट नहीं होता है apple-touch-iconया apple-touch-icon-precomposed, यदि मौजूद है, या फिर वर्तमान पृष्ठ का एक छोटा स्क्रीनशॉट उत्पन्न करता है।

FWIW, आइकन को / सार्वजनिक निर्देशिका में डालते हैं।


1
छवियों को जोड़ने से समस्या का समाधान नहीं होता है। उन परिसंपत्तियों के लिए अनुरोध किया जा रहा है जो मौजूद नहीं हैं। जब भी यह अनुरोध होता है, सर्वर प्रतिक्रिया देता है और लॉग प्रविष्टि लिखी जाती है। वह कुशल नहीं है।
टैस

-1

बस उपयुक्त नाम नामक शून्य आकार की फाइलें बनाएं।

अनुरोध न तो अतिरिक्त डेटा हस्तांतरण और न ही लॉगिंग लाइनों से संतुष्ट होगा।


1
बहुत पुराना उत्तर, लेकिन शून्य-आकार वाली फ़ाइल परोसने की अनुशंसा बिल्कुल नहीं की जाती क्योंकि वेब क्लिप (लिंक जो उपयोगकर्ता अपने होम स्क्रीन पर बना सकते हैं) बिना किसी सामग्री के एक वर्ग बॉक्स दिखाई देगा। यद्यपि मुझे Apple द्वारा बनाए गए विरोधी प्रतिमानों को पसंद नहीं किया गया है, लेकिन यदि कोई हो तो उपयोगकर्ताओं को एक शिफ्ट अनुभव प्रदान करने की तुलना में लॉग फ़ाइल में त्रुटियों को जमा करना बेहतर होगा।
एंड्रिया मोरो

-4

से लिंक बदलने का प्रयास करें

/apple-touch-icon-precomposed.png 

सेवा:

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

मैंने कहीं भी यह लिंक नहीं दिया है और मैं इस छवि को कहीं भी प्रस्तुत नहीं करना चाहता। मैं इस बात से सहमत हूँ कि इस संसाधन को लोड करने की कोशिश क्यों की जा रही है।
आकाश अग्रवाल

apple-touch-icon-precomposedआप परियोजना निर्देशिका में खोजने की कोशिश करें । मुझे लगता है कि यह लिंक लेआउट टेम्पलेट में शामिल है, लेकिन मैं श्योर नहीं हूं।
जीजू

1
यह आईओएस द्वारा अनुरोधित एक मानक छवि है; यह किसी व्यक्ति की प्रोजेक्ट फ़ाइलों के किसी भी लिंक से संबंधित नहीं है।
ब्रैड कोच

1
यह छवि मेरे droid razr द्वारा भी अनुरोध की गई है, इसलिए मुझे यकीन नहीं है कि यह केवल iOS उपकरणों के लिए देशी है।
Tass

2
क्यों Apple हर किसी की तरह favicon.ico के लिए बस नहीं कर सकता?
टोनी पायने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.