2014-09-15 37 views
5

Tôi có một ứng dụng sử dụng phông chữ glyph của FontAwesome cho các biểu tượng và mọi thứ hoạt động tốt khi tôi lưu trữ các tệp từ máy chủ của mình. Khi tôi bật hỗ trợ CDN trên trang web của mình, IE 11 hoạt động khá kỳ lạ liên quan đến các tệp phông chữ. Khi điều hướng đến một trang bằng cách nhấp vào liên kết hoặc nhập URL theo cách thủ công, các tệp phông chữ sẽ tải tốt ~ 95% thời gian. Nếu tôi tải lại trang hoặc sử dụng nút chuyển tiếp/quay lại (hoặc ~ 5% thời gian tải trang bình thường không hoạt động), IE 11 tải tệp phông chữ đầu tiên, mất/giảm/bỏ qua nội dung của phản hồi bằng cách nào đó , cố gắng tải tệp thứ hai, mất nội dung của nội dung phản hồi, rửa-rửa lại, và tôi kết thúc bằng không có phông chữ glyph. Tất cả các trình duyệt khác (bao gồm cả các phiên bản cũ của IE) đều hoạt động tốt.IE 11 không tải được các tệp tài nguyên

@font-face khai trong CSS:

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

tải trang bình thường:

Tóm tắt:

URL          Protocol Method Result Type      Received Taken Initiator Wait Start Request Response‎‎ Cache read‎‎ Gap‎‎ 
/common/fonts/fontawesome-webfont.eot HTTPS  GET  200  application/octet-stream 99.78 KB 109 ms @font-face 2449 0  47  62  0   1420 

tiêu đề đáp ứng:

Key       Value 
Response      HTTP/1.1 200 OK 
Content-Type     application/octet-stream 
Last-Modified     Mon, 04 Aug 2014 12:49:48 GMT 
Accept-Ranges     bytes 
ETag       "07ef492e2afcf1:0" 
Server       Microsoft-IIS/7.5 
P3P       CP="NON DSP COR ADM DEV PSA IVA CONi TELi OUR BUS NAV" 
Access-Control-Allow-Origin * 
Content-Length     101712 
Expires      Mon, 15 Sep 2014 18:48:40 GMT 
Cache-Control     max-age=0, no-cache, no-store 
Pragma       no-cache 
Date       Mon, 15 Sep 2014 18:48:40 GMT 
Connection      keep-alive 

cơ thể đáp ứng tiếp tệp phông chữ ains.

Trên trang tải lại:

Tóm tắt:

URL          Protocol Method Result Type      Received Taken Initiator Wait Start Request Response‎‎ Cache read‎‎ Gap‎‎ 
/common/fonts/fontawesome-webfont.eot HTTPS  GET  200  application/octet-stream 462 B  47 ms @font-face 983 0  47  0   0   1248 
/common/fonts/fontawesome-webfont.woff HTTPS  GET  200  application/x-font-woff 461 B  63 ms @font-face 1092 0  63  0   0   1123 
/common/fonts/fontawesome-webfont.ttf HTTPS  GET  200  application/octet-stream 462 B  93 ms @font-face 1155 15  78  0   0   1030 

tiêu đề đáp ứng (đối với "fontawesome-webfont.eot", những người khác đều giống nhau, ngoại trừ sự khác biệt về nội dung dài, chiếm sự khác biệt về kích thước tệp):

Key       Value 
Response      HTTP/1.1 200 OK 
Content-Type     application/octet-stream 
Last-Modified     Mon, 04 Aug 2014 12:49:48 GMT 
Accept-Ranges     bytes 
ETag       "07ef492e2afcf1:0" 
Server       Microsoft-IIS/7.5 
P3P       CP="NON DSP COR ADM DEV PSA IVA CONi TELi OUR BUS NAV" 
Access-Control-Allow-Origin * 
Content-Length     101712 
Expires      Mon, 15 Sep 2014 19:05:13 GMT 
Cache-Control     max-age=0, no-cache, no-store 
Pragma       no-cache 
Date       Mon, 15 Sep 2014 19:05:13 GMT 
Connection      keep-alive 

Nội dung phản hồi trống. Lưu ý rằng độ dài nội dung trong chi tiết không khớp với giá trị "đã nhận" trong tóm tắt.

Theo nhật ký CDN và lưu lượng truy cập theo dõi cục bộ trong Fiddler2, các tệp phông chữ đầy đủ đang được CDN phân phối. Gần như tôi có thể nói, phản hồi từ CDN giống với phản hồi từ máy chủ của tôi. Bật tính năng lưu vào bộ nhớ đệm dường như loại bỏ hiệu ứng (ít nhất, tôi không thể tạo lại bộ đệm với bộ nhớ đệm được bật), nhưng các Quyền hạn sẽ lo ngại rằng điều này sẽ ảnh hưởng đến các nội dung khác, không thể lưu vào bộ nhớ cache trong ứng dụng dưới dạng nhiều hơn được chuyển sang CDN, và do đó tôi phải tìm nguyên nhân gốc rễ và sửa chữa nó thay vì tát một băng trợ giúp trên nó.

Tại sao IE 11 hoạt động như thể các câu trả lời có nội dung phản hồi trống? Tại sao IE 11 có thể xử lý phản hồi từ CDN khác với phản hồi từ máy chủ ứng dụng, nếu các tệp và tiêu đề phản hồi giống nhau không?

Trả lời

0

Vì vậy, tôi không có một giải thích tốt cho lý do tại sao điều này là không, nhưng giải pháp mà một trong những công trình, không phải là một trong đó là lý tưởng. Bạn có thể đốt cháy rất nhiều thời gian để khắc phục sự cố này và vẫn không nhận được bất kỳ đâu, có rất nhiều biến liên quan.

Bạn có thể đặt dự phòng phông chữ để truy cập máy chủ của mình chứ không phải cdn không?

Bạn sẽ có thể chỉ định nó trong css mà bạn sử dụng một khuôn mặt phông chữ, và sau đó khác nếu nó không thành công.

body { font-family:"FontAwesome", "FontAwesomeFallback"; } 

Làm cho FontAwesomeFallback trỏ đến thư mục cục bộ của bạn và xem IE11 có cùng vấn đề hay không. Nếu đó là một vấn đề CDN, nhấn thư mục địa phương của bạn không phải là một vấn đề và phông chữ sẽ hiển thị đúng. Nếu nó vẫn không thành công, nó có thể là một vấn đề với chính fontface.

8

Tôi đã gặp sự cố tương tự với CDN. Sẽ cập nhật câu trả lời nếu tôi tìm thấy bất kỳ giải pháp nào khác. IE có sự cố nếu tệp phông chữ của bạn không có bộ nhớ cache.

Tôi hy vọng liên kết này sẽ hữu ích.

On IE CSS font-face works only when navigating through inner links

Cập nhật: Vấn đề cố định đối với tôi sau khi cài đặt kiểm soát bộ nhớ cache đúng trong tập tin .htaccess

tôi làm mỏ cho max-age = 3600 nhưng max-age = 0 sẽ làm việc quá

<FilesMatch "\.(ttf|otf|eot|woff)$"> 
<IfModule mod_headers.c> 
Header set Access-Control-Allow-Origin "*" 
Header set Cache-Control "max-age=3600" 
</IfModule> 
</FilesMatch> 
1

Loại MIME rất quan trọng trong IE11. Bạn phải đảm bảo rằng các loại MIME thích hợp được gửi cho các tập tin phông chữ:

  • application/vnd.ms-fontobject cho font EOT
  • application/font-woff cho WOFF phông chữ

gì CDN bạn đang sử dụng? Với FontAwesome CDN chính thức (http://www.bootstrapcdn.com/#fontawesome_tab), mọi thứ sẽ hoạt động tốt.

1

Đối với bất kỳ ai khác tìm thấy điều này với cùng một vấn đề, sau đây là thông tin, không nhất thiết phải là giải pháp.

IE dường như có một lỗi với tựa đề:

@ font-face không làm việc với Internet Explorer và HTTP header pragma = no-cache

Họ đã đóng cửa các lỗi như Won 't Sửa lỗi.

Xem chi tiết tại đây: http://connect.microsoft.com/IE/feedbackdetail/view/992569/font-face-not-working-with-internet-explorer-and-http-header-pragma-no-cache

tôi nhận thấy cùng một vấn đề ngay lập tức sau khi thêm một vài tiêu đề để ngăn chặn bộ nhớ đệm, bao gồm cả tiêu đề pragma.

Các vấn đề liên quan