266

新しい rails3 プロジェクトを作成しましたが、サーバー ログに次のログが何度も表示されます。これらのリクエストが送信される理由と、これらを回避するにはどうすればよいですか?

2012-09-18 20:03:53 +0530 で 192.168.6.2 の GET "/apple-touch-icon-precomposed.png" を開始しました

ActionController::RoutingError ([GET] "/apple-touch-icon-precomposed.png" に一致するルートはありません):

私はこのリンクをどこにも与えておらず、この画像をどこにもレンダリングしたくありません。このリソースをロードしようとしている理由がわかりません。

4

11 に答える 11

239

デバイスの所有者がサイトを追加すると、アップルのデバイスはそれらの要求を行うと思います。これはファビコンに相当します。解決するには、100×100 の png ファイルを 2 つ追加し、apple-touch-icon-precomposed.png および apple-touch-icon.png として保存し、サーバーのルート ディレクトリにアップロードします。その後、エラーはなくなるはずです。

サイトのルート ディレクトリから画像を読み込もうとするログで、apple-touch-icon-precomposed.png と apple-touch-icon.png に対する多くのリクエストに気付きました。最初はモバイル テーマとプラグインの設定ミスだと思っていましたが、デバイスの所有者がサイトを追加すると、Apple デバイスがそれらの要求を行うことが後でわかりました。

出典:ウェブマスターが 404 エラー ログを分析する必要がある理由(2012 年 3 月、Martin Brinkmann 著)

于 2012-10-02T02:04:18.560 に答える
77

Safari Web ブラウザー (Apple デバイス) のユーザーがサイトにアクセスした場合。<head>次の順序で定義されていない場合、ブラウザはサイト アイコンを取得しようとします。

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

この問題を解決するには、Safari Web ブラウザーまたは Apple デバイスのアイコンを定義します。サイトの head セクションに次のようなものを追加します。

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

きれいに保ちたい場合は<head>、適切な名前でアイコンをサイトのルートディレクトリにアップロードしてください。

デフォルトのアイコン サイズは 57pxです。

詳細については、 iOS 開発者ライブラリを参照してください。

于 2013-08-15T15:30:17.987 に答える
10

ここでグーグル検索を終了した場合、これは、このエラーが Web サーバーのログでいっぱいになるのを防ぐための簡単な構成です。

Apache 仮想ホスト

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.pngPS: 追加することも可能ですfavicon.ico

于 2016-12-26T23:55:01.193 に答える
5

これは、ユーザーがiOSのホーム画面にサイトをブックマークしていない場合でも発生する可能性があることに注意してください。たとえば、Chrome for iOSを使用してページを開くと、が実行されますGET "/apple-touch-icon-precomposed.png"

私はこれと他のHTML404以外のリクエストをApplicationControllerで次のように処理しました。

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ファイル(私のサイトには存在しません)などの画像を処理します。

于 2012-12-19T19:00:44.813 に答える
5

やっと解決しました!! これは、Mac デバイスのWeb クリップ機能です。ユーザーが Web サイトを Dock o Desktop に追加したい場合、このアイコンを要求します。

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/ConfiguringWebApplications.html

解決方法: 問題を解決するためのアイコンを追加します。

于 2016-09-22T16:28:28.770 に答える
-1

私にも同じことが起こっています。はい、@Joao Leme が言ったように、ユーザーがデバイスのホーム画面にサイトをブックマークすることに関連しているようです。

しかし、ログにエラーが記録されていても、それは裏で発生していて、ユーザーにはエラーが表示されないことに気付きました。apple-touch-iconデバイスは、一般的なまたはapple-touch-icon-precomposed存在する場合はデフォルトに設定されるまで、または現在のページの小さなスクリーンショットを生成するまで、その解像度(存在しない)に固有のタッチアイコンを要求すると仮定します。

FWIW、アイコンを /public ディレクトリに配置します。

于 2012-12-18T16:37:26.460 に答える
-4

からリンクを変更してみてください

/apple-touch-icon-precomposed.png 

に:

<%=asset_path "apple-touch-icon-precomposed.png" %>
于 2012-09-18T15:54:21.703 に答える