Apple-touch-icon-precomposed.png için neden hata alıyorum


247

Yeni bir rails3 projesi oluşturdum ancak sunucu günlüklerimde aşağıdaki günlükleri defalarca görüyorum. Neden bu isteği alıyorum ve bunları nasıl önleyebilirim?

2012-09-18 20:03:53 +0530'da 192.168.6.2 için "/apple-touch-icon-precomposed.png" ALIN

ActionController :: RoutingError (Güzergah eşleşmesi yok [GET] "/apple-touch-icon-precomposed.png"):

Bu bağlantıyı hiçbir yere vermedim ve bu resmi hiçbir yerde oluşturmak istemiyorum. Bu kaynağın neden yüklenmeye çalışıldığından emin değilim.


4
.net projemde aynı şeyi alıyorum. yakut ile ilgisi yoktur. anlamıyorum neden bu standart bir 404 bulunamadı hatası değil. ama değil. sadece bir yönlendirme hatası. i get: '/apple-touch-icon-precomposed.png' yolu için denetleyici bulunamadı veya IController'ı uygulamaz.
horace

Yanıtlar:


221

Cihaz sahibi siteyi siteye eklerse elma cihazlarının bu istekleri yaptığını tahmin ediyorum. Bu, favicon'un eşdeğeridir. Çözmek için 2 100 × 100 png dosyası ekleyin, apple-touch-icon-precomposed.png ve apple-touch-icon.png olarak kaydedin ve sunucunun kök dizinine yükleyin. Bundan sonra hata gitmiş olmalı.

Sitenin kök dizininden görüntüleri yüklemeye çalışan günlüklerde apple-touch-icon-precomposed.png ve apple-touch-icon.png için birçok istek fark ettim. İlk olarak mobil temanın ve eklentinin yanlış yapılandırılması olduğunu düşündüm, ancak daha sonra cihaz sahibi siteyi siteye eklerse Apple cihazlarının bu istekleri yaptığını öğrendim.

Kaynak: Web Yöneticileri Neden 404 Hata Günlüğünü Analiz Etmelidir (Mart 2012; Martin Brinkmann)


52
Bilmek istediğim her şeyi ayrıntılarıyla anlatan
Alexis

Kök dizin ile uygulama / genel dizin veya genel dizin mi demek istediniz?
Bengala

Yukarıdaki yazarın yapılandırılmış web belgesi kök dizini anlamına geldiğine inanıyorum, örneğin Apache 2.4'te genellikle / var / www / htdocs
Hgehlhausen

70

Safari Web tarayıcısından (Apple cihazları) bir kullanıcı sitenizi ziyaret ederse. Tarayıcı, web sitesinde tanımlanmadıysa site simgesini getirmeye çalışır<head> , aşağıdaki sırada :

  1. elma-touch-icon-57x57-precomposed.png
  2. elma-touch-icon-57x57.png
  3. elma-touch-icon-precomposed.png
  4. elma-touch-icon.png

Bu sorunu çözmek için, safari web tarayıcıları veya elma aygıtları için bir simge tanımlayın. Sitenizin baş bölümüne böyle bir şey ekleyin:

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

Tutmak istiyorsan <head>Temiz , simgeyi sitenizin kök dizinine doğru adla yükleyin.

Varsayılan simge boyutu 57px olduğunu .

İOS geliştirici kitaplığında daha fazla ayrıntı bulabilirsiniz .


Bu tanımla bile, hala apple-touch-icon-precomposed.png için 404'ler alıyorum
Chris Haines

3
Artık daha yeni iPad'lere uyum sağlamak için varsayılan simge boyutunun 152 × 152 piksel olması önerilir.
Andrew Lott

2
Hala aynı hatayı ve custom_icon.png için ek bir yönlendirme hatası alıyorum. Bu arada, tarayıcı olarak Safari 8.0.3 kullanarak OSX 10.10.2 üzerinde geliştirme raylar çalışan bu hataları alıyorum.
7

8

Burada googling'i sonlandırdıysanız, bu hatayı web sunucusu günlükleriyle dolu önlemek için basit bir yapılandırmadır:

Apache sanal barındırıcısı

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

Nginx sunucu bloğu:

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

Not: Eklemek istediğiniz mümkün mü apple-touch-icon.pngve favicon.icode.


5

Bunun, kullanıcı siteyi iOS ana ekranlarına işaretlememiş olsa bile olabileceğini unutmayın; örneğin, iOS için Chrome'u kullanarak bir sayfayı her açtığınızda, a GET "/apple-touch-icon-precomposed.png".

Bu ve diğer HTML 404 istekleri benim ApplicationController aşağıdaki gibi ele:

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

format.allTepkisi böyle (sitem için yok) bu PNG dosyası olarak görüntülerin ilgilenir.


4

Benim gibi, bu dosyaları Rails uygulamanıza eklemek istemezseniz, günlüklerinizde bu hataları susturmak için quiet_assets gibi bir mücevher var:

https://github.com/davidcelis/quiet_safari


Bu en iyi çözümdür ... eğer günlük kaydını engellemezseniz hayal kırıklıklarından ve muazzam günlük dosyalarından başka bir şey değildir. Apple karar verdiğinde talep edilen boyutlar değişiyor ... aynı lanet favicon'un daha fazla versiyonunu takip etmemizi sağlıyor.
vanboom

4

Simgenin her türlü Apple cihazında güzel görünmesini umursamıyorsanız,

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

sizin için config/routes.rbdosya ve bazı icon.pngsizin için publicdizine. İş 404.htmlyerine de yönlendiriliyor icon.png.


Burada iyi çalıştı.
Wellington1993

3

Sonunda çözdüm !! Mac Aygıtlarda bir Web Klibi özelliğidir. Bir kullanıcı web sitenizi Dock o Desktop'a eklemek istiyorsa bu simgeyi ister.

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.

daha fazla bilgi: https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

nasıl çözülür ?: Sorunu çözmek için bir simge ekleyin.


2

Alternatif bir çözüm, rotalarınıza bir rota eklemektir. Rb

Temel olarak Apple isteğini yakalar ve istemciye 404'ü geri gönderir. Bu şekilde günlük dosyalarınız dağınık olmaz.

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

ardından bir yöntem 'apple_touch_not_found' eklemek application_controller.rb

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

0

Benim için de aynı şey oluyor. Ve evet, @Jaoao Leme'nin dediği gibi, bir kullanıcının bir cihazı cihaz ana ekranına yer işareti koymasıyla ilgili gibi görünüyor.

Ancak, günlükte bir hata olmasına rağmen, bunun perde arkasında gerçekleştiğini ve kullanıcının hatayı asla görmediğini fark ettim. Cihazın, varsayılana apple-touch-iconveya apple-touch-icon-precomposedmevcutsa varsayılana kadar veya başka bir şekilde geçerli sayfanın küçük bir ekran görüntüsünü oluşturuncaya kadar çözünürlüğüne özgü (orada olmayan) dokunmatik simge için bir istekte bulunduğunu varsayıyorum .

FWIW, / public dizinine simgeleri koyun.


1
Görüntüleri eklemek sorunu çözmez. Var olmayan varlıklar için istekler yapılıyor. Bu istek her gerçekleştiğinde, sunucu yanıt verir ve bir günlük girişi yazılır. Bu verimli değil.
Tass

-1

Uygun adlar olarak adlandırılan sıfır boyutlu dosyalar oluşturmanız yeterlidir.

Ek veri aktarımı veya daha fazla kayıt satırı olmaksızın talep yerine getirilecektir.


1
Çok eski bir yanıt, ancak Web Klibi (kullanıcıların ana ekranlarında oluşturabilecekleri bağlantı) içerik içermeyen kare bir kutu görüneceğinden sıfır boyutlu bir dosya sunmak hiç önerilmez. Apple tarafından oluşturulan karmaşık anti-desenleri sevmese de, eğer varsa, kullanıcılara shxt deneyimi sunmaktan ziyade bir günlük dosyasında hataları biriktirmek daha iyi olurdu.
Andrea Moro

-4

Bağlantısını değiştirmeye çalışın

/apple-touch-icon-precomposed.png 

için:

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

Bu bağlantıyı hiçbir yere vermedim ve bu resmi hiçbir yerde oluşturmak istemiyorum. Bu kaynağın neden yüklenmeye çalışıldığından emin değilim.
Akash Agrawal

apple-touch-icon-precomposedProje dizininizde bulmaya çalışın . Bu bağlantı düzeni şablonuna dahil düşünüyorum, ama shure değilim.
Jju

1
Bu, iOS tarafından istenen standart bir görüntüdür; bir kişinin proje dosyalarındaki hiçbir bağlantıyla ilgili değildir.
Brad Koch

1
Bu resim ayrıca droid razr'ım tarafından isteniyor, bu yüzden yalnızca iOS cihazlarına özgü olduğundan emin değilim.
Tass

2
Apple neden herkes gibi favicon.ico'ya yerleşemiyor?
Tony Payne
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.