Firefox không thể kết xuất các biểu tượng từ bộ webfont Font Awesome


20

Trong Firefox (Windows 7), các biểu tượng và glyph được gọi từ gói Font Awesome không hiển thị đúng. Một ví dụ về điều này có thể được nhìn thấy trên trang web của Khan Academy. Bên dưới video, các biểu tượng được hiển thị dưới dạng hộp có mã hex trong đó. Điều này có nghĩa là nó không được Firefox tải xuống.

Cách các biểu tượng xuất hiện trong Firefox

Cách thức xuất hiện trên Chrome (Windows 7), Safari (Mac OS X) và Không gỉ (Mac OS X):

Cách các biểu tượng xuất hiện trong các trình duyệt khác

Tôi đã tìm thấy câu hỏi này trên Stack Overflow có thể giải thích lý do tại sao điều này xảy ra - CSS sử dụng các dấu ngoặc đơn để đặt vị trí src của phông chữ. Tuy nhiên, tôi không có quyền truy cập ghi vào máy chủ của Khan Academy vì vậy tôi không thể sửa đổi trang web thực tế. Tôi muốn biết nếu điều này có thể được sửa trong Firefox, và làm thế nào. Tôi có thể chạy các tập lệnh Greasemonkey nếu điều đó có ích. Tôi đã thử tải xuống phông chữ thủ công và thêm nó vào thư mục Phông chữ của Windows nhưng điều này không có ích.

Để tham khảo, CSS thiết lập phông chữ này (không được Firefox xử lý đúng cách) là:

@font-face
{
  font-family:'FontAwesome';
  src:url('./fontawesome-webfont.eot');
  src:url('./fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
      url('./fontawesome-webfont.woff') format('woff'),
      url('./fontawesome-webfont.ttf') format('truetype'),
      url('./fontawesome-webfont.svg#FontAwesome') format('svg');
  font-weight:normal;
  font-style:normal
}

[class^="icon-"]:before,
[class*=" icon-"]:before
{
  font-family:FontAwesome;
  font-weight:normal;
  font-style:normal;
  display:inline-block;
  text-decoration:inherit
}

Cập nhật: Tôi thấy rằng Firefox hiển thị chính xác các biểu tượng dựa trên phông chữ trong trang web của gói Font Awesome (được liên kết ở trên). Khi kiểm tra CSS và so sánh với CSS của Khan Academy, tôi thấy rằng cả hai mã này hoàn toàn giống nhau ngoại trừ không có dấu chấm phẩy sau thuộc tính cuối cùng cho CSS của KA (nếu bạn bỏ qua thực tế là nó bị nén). Có phải thiếu dấu chấm phẩy gây ra vấn đề này?


2
Có vẻ như ai đó đã bỏ phiếu để đóng câu hỏi này. Tôi muốn biết tại sao. Tôi tin rằng câu hỏi này rất phù hợp với Super User (một trang web để nhận trợ giúp về các sự cố máy tính) và không được đóng lại.
ADTC

1
Tôi đang bỏ phiếu để đóng @ADTC vì đây là vấn đề nhiều hơn với khancademy không thực hiện đúng nghiên cứu về tính tương thích của trang web của họ và không phải là một câu hỏi có thể được giải quyết ở đây.
James Mertz

4
Thật đáng buồn vì đơn giản là tôi đã vô tình gắn vấn đề với trang web thay vì giữ nó hoàn toàn là vấn đề Firefox / CSS ngay từ đầu, bây giờ nó không có giá trị ngay cả sau khi viết lại để gỡ nó ra khỏi trang web và khiến nó hoàn toàn là vấn đề của Firefox / CSS. Dù sao, tôi đã thêm một ví dụ ngược lại như một bản cập nhật ở cuối, nó có thể cho thấy vấn đề là gì.
ADTC

5
Tôi thất vọng với sự kiêu ngạo kết hợp với sự thiếu hiểu biết ở đây. Vấn đề thực sự là Font Awesome sẽ thất bại trong Firefox bất cứ khi nào yêu cầu cho tệp phông chữ là tên miền chéo. Nói cách khác, trên bất kỳ trang web nào sử dụng CDN để phân phối các tệp tĩnh.
jasonrr

3
"KA đã tham chiếu các tệp phông chữ từ vị trí sai" Không chính xác! Các phông chữ hoạt động chính xác trong ba trình duyệt khác như tôi đã đề cập từ lâu, điều đó có nghĩa là các phông chữ nằm ở vị trí chính xác. Đó rõ ràng là vấn đề của Firefox với ./đường dẫn như tôi đã giải thích, điều này buộc KA phải di chuyển các tệp phông chữ đến một vị trí mới không cần ./, cho phép Firefox cũng đọc chính xác các tệp phông chữ. Vì vậy nó một vấn đề về cách Firefox xử lý các tập tin. Bạn sai rồi.
ADTC

Câu trả lời:


12

Vấn đề được mô tả trong câu hỏi đã được cố định bởi Học viện Khan bằng cách thay đổi tất cả các đường từ ./đến /fonts/(ví dụ ./fontawesome-webfont.ttfthay đổi /fonts/fontawesome-webfont.ttf). Dường như với tôi rằng Firefox không thể đọc các tệp từ thư mục "chấm" đặc biệt (chỉ đơn giản đề cập đến thư mục hiện tại).

PS: Việc thiếu dấu chấm phẩy trong CSS sau thuộc tính cuối cùng không gây ra vấn đề này.

Ý kiến ​​khác:

Chỉnh sửa của bạn về .tiền tố là một vấn đề máy chủ, không phải cách Firefox xử lý các tệp. KA đã tham chiếu các tệp phông chữ từ vị trí sai - ngẫu nhiên

Sai! Các phông chữ hoạt động chính xác trong ba trình duyệt khác như tôi đã đề cập từ lâu, điều đó có nghĩa là các phông chữ nằm ở vị trí chính xác. Đó rõ ràng là vấn đề của Firefox với ./đường dẫn như tôi đã giải thích, điều đó buộc KA phải di chuyển các tệp phông chữ đến một vị trí mới không cần ./, cho phép Firefox cũng đọc chính xác các tệp phông chữ. Vì vậy nó một vấn đề về cách Firefox xử lý các tập tin.


Câu trả lời này được tạo ra theo yêu cầu của Sathya trong luồng bình luận bên dưới câu hỏi.
ADTC

2
Lưu ý rằng vấn đề Firefox này cũng ảnh hưởng đến các đường dẫn bắt đầu bằng ../.
Bến


0

Tôi đã thực hiện các thay đổi đường dẫn để chạy IE, Firefox và Chrome một cách chính xác, như sau: ( URL để xem )

@font-face{
  font-family:'FontAwesome';
  src:url('ogi/bete/font/fontawesome-webfont.eot?v=3.0.1');
  src:url('/ogi/bete/font/fontawesome-webfont.eot?#iefix&v=3.0.1') format('embedded-opentype'), 
  url('/ogi/bete/font/fontawesome-webfont.woff?v=3.0.1') format('woff'),
  url('ogi/bete/font/fontawesome-webfont.ttf?v=3.0.1') format('truetype');
  font-weight:normal;
  font-style:normal }
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.