Mengapa favicon terkadang tidak muncul dan menghasilkan kesalahan "halaman tidak ditemukan", dan waktu lainnya muncul

8

Seperti yang tersirat dalam pertanyaan, kadang-kadang log Drupal menunjukkan bahwa favicon tidak ditemukan. Memang, itu tidak ditampilkan di tab browser atau bilah alamat. Di lain waktu, bahkan di dalam sesi selancar yang sama, itu muncul.

Mengapa ia melakukan ini dan bagaimana saya bisa mencegahnya sehingga favicon akan selalu ditampilkan?

Saya menggunakan versi Drupal 7.22. dengan subtitle khusus dan tema admin (Stark).

Favicon saya diatur dalam konfigurasi tema subtema di situs / default / file / gambar / favicon.ico dan itu terletak di sana karena saya telah memeriksa melalui FTP.

Log menunjukkan browser mencari di example.com/favicon.ico.

Subtema kustom yang saya gunakan ada <link rel="shortcut icon" href="http://example.com/sites/default/files/images/favicon.ico"; type="image/vnd.microsoft.icon" />dalam kode sumber dan tema admin (Stark) gunakan <link type="image/vnd.microsoft.icon" href="http://example.com/misc/favicon.ico"; rel="shortcut icon">dan file ini juga ada di lokasi itu (tentu saja tidak menggunakan example.com, tentu saja).

Drupal menggunakan URL bersih.

Server web adalah Apache di Debian Linux.

Terima kasih.

authentictech
sumber
Mungkin bisa membantu jika Anda akan memberikan referensi untuk kesalahan ini, harus dalam log.
Mołot
@ Molot Bidang pengarah kosong atau halaman lain di situs dalam semua kasus yang saya periksa di log.
authentictech
Bisakah Anda mengedit dalam pesan log untuk menunjukkan path, server web apa yang Anda gunakan, serta apakah mod_rewrite berfungsi (mis., URL bersih)?
mpdonadio

Jawaban:

4

Beberapa browser mencari favicon di bawah http://example.com/favicon.ico tanpa memeriksa. Tapi mereka minoritas sekarang.

Yang paling dihormati:

<link rel="icon" href="http://example.com/img/icon.png">

seperti yang dijelaskan oleh W3C .

Jika situs Anda mencoba menggunakan <link>pendekatan tetapi gagal pada beberapa halaman, seperti halaman admin yang dibuat menggunakan templat yang berbeda, dan Anda tidak memiliki favicon.ico di lokasi default, Anda akan mendapatkan efek yang dijelaskan dengan tepat.

Jika peramban mencari http://example.com/favicon.ico ketika Anda sudah layak, <link rel="shortcut icon">itu adalah masalah peramban, bukan milik Anda. Ini berarti browser (atau setidaknya bagian dari kode itu) sudah usang, kecuali jika terlihat di bawah URI yang benar terlebih dahulu dan mendapat kesalahan lain, tetapi kemudian Anda akan melihat dua kesalahan dalam log, satu untuk tempat yang tepat, kedua untuk yang sudah ketinggalan zaman. Dalam antrian Mozilla ada sejumlah laporan tentang deteksi favicon yang tidak benar oleh FireFox - misalnya yang ini . Ini menunjukkan bagaimana bahkan browser modern kadang-kadang dapat kembali ke metode lama.

Mołot
sumber
Ya, log menunjukkan bahwa browser mencari di example.com/favicon.ico . Subtema kustom yang saya gunakan untuk situs ini memang memberikan <link rel = "ikon pintas" href = " example.com/sites/default/files/images/favicon.ico " type = "image / vnd.microsoft.icon" /> dalam kode sumber (sebenarnya bukan example.com) yang merupakan lokasi yang benar. Jika saya mematikan hamparan, tema admin menggunakan <link type = "image / vnd.microsoft.icon" href = " example.com/misc/favicon.ico " rel = "ikon pintasan"> dan file ini juga ada di lokasi itu.
authentictech
Segalanya tampak benar sebagaimana mestinya. Jadi apakah ini masalah browser atau masalah situs web? Ke mana saya akan pergi untuk memperbaikinya? Terima kasih.
authentictech
@authentictech jika peramban mencari example.com/favicon.ico saat Anda sudah layak, <link rel="shortcut icon">itu adalah masalah peramban, bukan milik Anda. Ini berarti browser sudah usang, kecuali jika terlihat di tempat yang benar terlebih dahulu dan mendapat kesalahan lain, tetapi kemudian Anda akan melihatnya di log sebelum ini. Saya akan memperbarui pertanyaan saya.
Mołot
1
@MPD Mungkin tidak dilayani oleh Apache; Konfigurasi nginx Pantheon menghilangkan aturan itu sebagai contoh (jika saya ingat dengan benar)
Clive
2
@authentictech Firefox memiliki banyak laporan bug terbuka tentang penanganan favicon yang tidak benar. Seperti yang ini misalnya. Bagian dari kode itu sudah tua, sedih tetapi benar. Jika Anda ingin mengatasinya, Anda dapat menambahkan penulisan ulang ke .htaccess Anda, tetapi itu akan meretas bug browser, bukan memperbaiki bug situs.
Mołot
2

Perbaikan cepat dan mudah untuk rasa sakit ini, adalah dengan menggunakan modul Redirect dan buat redirect untuk itu.

Setelah modul diaktifkan, buka admin/config/search/redirect/adddan gunakan di favicon.icobawah dari dan ke harus menjadi lokasi sebenarnya dari tema Anda favicon.ico.

cdmo
sumber
File ini secara otomatis ditangani oleh .htaccess sehingga permintaan tidak pernah membuatnya ke Drupal agar modul Redirect dapat menanganinya.
Vincent
1
Ya itu membuatnya ke Drupal. Kalau tidak, bagaimana cara login di log Drupal? Saya telah menggunakan pendekatan ini dengan sukses dalam produksi.
cdmo
1
Anda benar, saya baru saja menguji ini. Mengedit jawaban asli Anda sehingga saya dapat mengalihkan downvote saya ke upvote.
Vincent
0

Jika Anda menggunakan Apache, cara terbaik yang saya temukan untuk memperbaikinya adalah dengan meletakkan:

<Location /favicon.ico>
  ErrorDocument 404 "No favicon"
</Location>

Kode ini harus bekerja di file vhost Anda atau juga harus bekerja di file .htaccess, lihat http://httpd.apache.org/docs/2.4/sections.html untuk lebih jelasnya

Colin Shipton
sumber