Tại sao các favicon đôi khi không hiển thị và tạo ra trang không tìm thấy lỗi và các lần khác không hiển thị


8

Như câu hỏi ngụ ý, nhân dịp nhật ký của Drupal cho thấy favicon không được tìm thấy. Thật vậy, nó không hiển thị trong tab trình duyệt hoặc thanh địa chỉ. Vào những thời điểm khác, ngay cả trong cùng một phiên lướt web, nó vẫn hiển thị.

Tại sao nó làm điều này và làm thế nào tôi có thể ngăn chặn nó để favicon sẽ luôn hiển thị?

Tôi đang sử dụng phiên bản Drupal 7.22. với một subtheme tùy chỉnh và một chủ đề quản trị (Stark).

Favicon của tôi được đặt trong cấu hình chủ đề phụ tại các trang web / default / files / hình ảnh / favicon.ico và được đặt ở đó như tôi đã kiểm tra qua FTP.

Nhật ký cho thấy trình duyệt đang tìm kiếm trong example.com/favicon.ico.

Subtheme tùy chỉnh mà tôi sử dụng có <link rel="shortcut icon" href="http://example.com/sites/default/files/images/favicon.ico"; type="image/vnd.microsoft.icon" />trong mã nguồn và chủ đề quản trị viên (Stark) sử dụng <link type="image/vnd.microsoft.icon" href="http://example.com/misc/favicon.ico"; rel="shortcut icon">và tệp này cũng tồn tại ở vị trí đó (tất nhiên không thực sự sử dụng example.com).

Drupal đang sử dụng URL sạch.

Máy chủ web là Apache trên Debian Linux.

Cảm ơn bạn.


Có thể giúp đỡ nếu bạn sẽ cung cấp người giới thiệu cho các lỗi này, nên được ghi lại.
Mołot

@Molot Trường giới thiệu là trống hoặc một trang khác trong trang web trong tất cả các trường hợp tôi đã kiểm tra trong nhật ký.
xác thực

Bạn có thể chỉnh sửa trong thông điệp tường trình để hiển thị đường dẫn, máy chủ web nào bạn đang sử dụng cũng như liệu mod_rewrite có hoạt động không (ví dụ: URL sạch)?
mpdon Arena

Câu trả lời:


4

Một số trình duyệt tìm kiếm favicon trong http://example.com/favicon.ico mà không cần kiểm tra. Nhưng họ là thiểu số bây giờ.

Tôn trọng nhất:

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

như được mô tả bởi W3C .

Nếu trang web của bạn cố gắng sử dụng <link>phương pháp tiếp cận nhưng không thành công trên một số trang, như các trang quản trị được hiển thị bằng mẫu khác nhau và bạn không có favicon.ico ở vị trí mặc định, bạn sẽ nhận được các hiệu ứng được mô tả chính xác.

Nếu trình duyệt đang tìm kiếm http://example.com/favicon.ico khi bạn có <link rel="shortcut icon">vấn đề thì đó là sự cố trình duyệt, không phải của bạn. Nó có nghĩa là trình duyệt (hoặc ít nhất là một phần của mã của nó) đã lỗi thời, trừ khi trước tiên nó nhìn dưới URI chính xác và có một lỗi khác, nhưng sau đó bạn sẽ thấy hai lỗi trong nhật ký, một lỗi ở vị trí phù hợp, thứ hai là lỗi thời. Trong hàng đợi của Mozilla, có một số báo cáo về việc phát hiện favicon không đúng của FireFox - ví dụ như báo cáo này . Nó cho thấy ngay cả các trình duyệt hiện đại đôi khi có thể quay lại các phương thức cũ.


Có, nhật ký cho thấy trình duyệt đang tìm kiếm trong example.com/favicon.ico . Subtheme tùy chỉnh mà tôi sử dụng cho trang web sẽ cung cấp <link rel = "biểu tượng phím tắt" href = " example.com/sites/default/files/images/favicon.ico " type = "image / vnd.microsoft.icon" /> trong mã nguồn (không thực sự là example.com) là vị trí chính xác. Nếu tôi tắt lớp phủ, chủ đề quản trị viên đang sử dụng <link type = "image / vnd.microsoft.icon" href = " example.com/misc/favicon.ico " rel = "icon icon"> và tệp này cũng tồn tại ở vị trí đó
xác thực

Tất cả mọi thứ có vẻ đúng như nó phải được. Vì vậy, đây là một vấn đề trình duyệt hoặc trang web? Tôi sẽ đi đâu để sửa nó? Cảm ơn.
xác thực

@authentictech nếu trình duyệt đang tìm kiếm example.com/favicon.ico khi bạn có <link rel="shortcut icon">vấn đề thì đó là vấn đề của trình duyệt, không phải của bạn. Nó có nghĩa là trình duyệt đã lỗi thời, trừ khi nó nhìn vào vị trí chính xác trước và gặp một lỗi khác, nhưng sau đó bạn sẽ thấy nó trong nhật ký ngay trước lỗi này. Tôi sẽ cập nhật câu hỏi của tôi.
Mołot

1
@MPD Nó có thể không được phục vụ bởi Apache; Cấu hình nginx của Pantheon bỏ qua quy tắc đó chẳng hạn (nếu tôi nhớ đúng)
Clive

2
@authentictech Firefox có nhiều báo cáo lỗi mở về xử lý favicon không đúng. Như cái này chẳng hạn. Các phần của mã đó là cũ, buồn nhưng đúng. Nếu bạn muốn xử lý điều đó, bạn có thể thêm viết lại vào .htaccess của mình, nhưng nó sẽ bị hack xung quanh một lỗi trình duyệt, không sửa lỗi trang web.
Mołot

2

Khắc phục nhanh chóng và dễ dàng cho nỗi đau này, là sử dụng mô-đun Redirect và thực hiện chuyển hướng cho nó.

Khi mô-đun được bật, hãy đi đến admin/config/search/redirect/addvà sử dụng favicon.icobên dưới và phải là vị trí thực tế của chủ đề của bạn favicon.ico.


Tệp này được tự động xử lý bởi .htaccess để yêu cầu không bao giờ gửi tới Drupal cho mô-đun Redirect để xử lý nó.
Vincent

1
Vâng, nó làm cho nó đến Drupal. Nếu không, làm thế nào nó sẽ được đăng nhập vào nhật ký Drupal? Tôi đã sử dụng phương pháp này thành công trong sản xuất.
cdmo

1
Bạn nói đúng, tôi chỉ thử nghiệm điều này. Đã chỉnh sửa câu trả lời ban đầu của bạn để tôi có thể chuyển downvote của mình sang upvote.
Vincent

0

Nếu bạn đang sử dụng Apache, cách tốt nhất tôi tìm thấy để khắc phục là đặt:

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

Mã này sẽ hoạt động trong tệp vhost của bạn hoặc cũng sẽ hoạt động trong tệp .htaccess, xem http://httpd.apache.org/docs/2.4/sections.html để biết thêm chi tiết


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.