Không thể giải mã phông chữ đã tải xuống


149

Đây là một lỗi tôi gặp phải trong Chrome và không may tìm kiếm nó đã không mang lại cho tôi nhiều kết quả. Các phông chữ xuất hiện chính xác. Tuy nhiên tôi vẫn nhận được lỗi / cảnh báo này. Cụ thể hơn, đây là cảnh báo đầy đủ:

"Không thể giải mã phông chữ đã tải xuống: http: // localhost: 8000 / ứng dụng / phông chữ / Lato / "

CSS của tôi là:

@font-face {
    font-family:"Lato";
    src: url("../fonts/Lato/");
}

html, body {
    font-family:'Lato';
}

Tôi chẳng hiểu gì. Phông chữ được áp dụng chính xác, nhưng cảnh báo luôn ở đó. Cố gắng sử dụng Sans-Seriflàm cho phông chữ trở lại phông chữ trình duyệt bình thường, vì vậy đó có thể là nó, nhưng tôi không chắc chắn, và thậm chí sau khi tìm kiếm tôi không tìm thấy gì. Cảm ơn!

BIÊN TẬP

Có nhiều tập tin phông chữ khác nhau, tất cả từ cùng một gia đình. Tôi đang cố gắng tải tất cả. Các tập tin phông chữ là .ttf. Tôi tải chúng từ một thư mục địa phương, và có rất nhiều font-file, như Lato-Black.ttf, Lato-Bold.ttf, Lato-Italic.ttf, vv


2
Tại sao dấu gạch chéo trong URL? Bạn đang cố tải tất cả các tệp từ một thư mục hay nó thực sự là một chuyển hướng đến một tệp phông chữ?
Álvaro González

@ ÁlvaroG.Vicario Xin chào, cảm ơn bạn đã dành thời gian. Tôi chỉnh sửa câu hỏi để làm cho nó rõ ràng hơn.
Luís Ferreira

Câu trả lời:


101

Trong quy tắc css, bạn phải thêm phần mở rộng của tệp. Ví dụ này với sự hỗ trợ sâu sắc nhất có thể:

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

BIÊN TẬP:

"Không thể giải mã phông chữ đã tải xuống" có nghĩa là phông chữ bị hỏng hoặc không đầy đủ (thiếu số liệu, bảng cần thiết, hồ sơ đặt tên, một triệu điều có thể).

Đôi khi vấn đề này là do chính phông chữ. Phông chữ của Google cung cấp đúng phông chữ bạn cần nhưng nếu mặt phông chữ là cần thiết, tôi sử dụng Transfonter để tạo tất cả định dạng phông chữ.

Đôi khi, máy khách FTP làm hỏng tệp (không phải trong trường hợp này vì trên máy tính cục bộ). Hãy chắc chắn để chuyển tập tin trong nhị phân và không trong ASCII.


Tôi chỉnh sửa câu hỏi của tôi để làm cho nó rõ ràng hơn. Tôi không chắc chắn nếu nó thay đổi bất cứ điều gì của những gì bạn đã đăng. Xin lỗi vì sự lộn xộn và cảm ơn bạn đã dành thời gian.
Luís Ferreira

1
Bạn phải sử dụng nhất thiết phải đối mặt với @font? Tôi biết Lato có sẵn trên phông chữ google. Dù sao bạn cũng có thể thử điều này: font-family: 'Lato'; font-style: normal; font-weight: 400; src: local('Lato Regular'), local('Lato-Regular'), url('../font/file for regular font.wof') format('wof');Mã này cho mọi loại phông chữ, thông thường, đậm, v.v ...
Germano Plebani

1
Tôi đã kết thúc bằng cách sử dụng tùy chọn phông chữ google và nó hoạt động tốt. Cảm ơn. Tôi chấp nhận câu trả lời của bạn.
Luís Ferreira

9
Câu hỏi này được gắn nhãn 'không thể giải mã phông chữ đã tải xuống'. Câu trả lời là một tình huống cụ thể và không thực sự nêu rõ ý nghĩa của lỗi.
Krii

24

Tôi đã gặp một vấn đề tương tự trong Visual Studio, nguyên nhân là do url()đường dẫn không chính xác đến phông chữ được đề cập.

Tôi đã ngừng nhận lỗi này sau khi thay đổi (ví dụ):

@@font-face{
    font-family: "Example Font";
    src: url("/Fonts/ExampleFont.eot?#iefix");

đến đây:

@@font-face{
    font-family: "Example Font";
    src: url("../fonts/ExampleFont.eot?#iefix");

1
đối với tôi ./ hoặc ../ không làm việc nhưng tháo / hoàn toàn làm việc đi từ /assets...để assets...Cảm ơn bạn rất nhiều!
Shereef Marzouk

21

Thay đổi từ định dạng ('woff') thành định dạng ('font-woff') giúp tôi giải quyết vấn đề này ngay bây giờ.

Chỉ cần thay đổi một chút thay đổi ở đây từ câu trả lời của Germano Plebani

 @font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('font-woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

Vui lòng kiểm tra xem các nguồn trình duyệt của bạn có thể mở nó không và loại này là gì


7
định dạng phông chữ bị sai, nó nên đọc "woff". Và với điều này, Chrome coi phông chữ woff là định dạng không xác định và chuyển sang định dạng tốt nhất tiếp theo (có thể là ttf của woff2 tại đây)
Arthur

cảm ơn bạn rất nhiều, với giải pháp này tôi cũng có thể giải quyết vấn đề với các định dạng khác (ttf, woff2, ...).
Xa

5
Thật không may câu trả lời này là sai. Có thể không rõ @Arthur đang nói gì, nhưng nếu bạn thay đổi tên định dạng phông chữ, trình duyệt sẽ bỏ qua phông chữ theo nghĩa đen, vì nó không được đăng ký dưới dạng phông chữ. Trong công cụ kiểm tra của chrome (F12), chuyển đến tab Ứng dụng rồi xuống Khung> Trên cùng> Phông chữ. Hãy thử sử dụng giải pháp này và bạn sẽ thấy các phông chữ được xóa. Tôi hiếm khi sử dụng downvote trên SO, nhưng trong trường hợp này, câu trả lời thực sự khiến độc giả tồi tệ hơn, bởi vì họ có thể nghĩ rằng họ đã giải quyết vấn đề, nhưng chỉ ngụy trang nó.
André C. Andersen

Điều đó đã giải quyết vấn đề của tôi khi nhập các tệp woff trong dự án Nextjs! Cảm ơn rất nhiều!
Thanh-Quý Nguyên

Như @ AndréC.Andersen nói TRẢ LỜI NÀY CHỈ CÓ NHỮNG VẤN ĐỀ VỀ VẤN ĐỀ VÀ KHÔNG CỐ ĐỊNH NÓ .
JohnK

12

Đảm bảo rằng máy chủ của bạn đang gửi các tệp phông chữ với mime / type phù hợp .

Gần đây tôi gặp vấn đề tương tự khi sử dụng nginx vì một số loại mime phông chữ bị thiếu trong /etc/nginx/mime.typestệp vanilla của nó .

Tôi đã khắc phục sự cố thêm các loại mime bị thiếu ở vị trí tôi cần chúng như thế này:

location /app/fonts/ {

  #Fonts dir
  alias /var/www/app/fonts/;

  #Include vanilla types
  include mime.types;

  #Missing mime types
  types  {font/truetype ttf;}
  types  {application/font-woff woff;}
  types  {application/font-woff2 woff2;}
}

Bạn cũng có thể kiểm tra điều này để mở rộng mime.types trong nginx: mở rộng tệp nginx mime.types mặc định


12

Tôi đã phải thêm type="text/css"vào thẻ liên kết của tôi. Tôi đã thay đổi nó từ:

<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:300,400,700" rel="stylesheet">

đến:

<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:300,400,700" rel="stylesheet" type="text/css">

Sau khi tôi thay đổi, lỗi biến mất.


Cảm ơn bạn, nó hoạt động. Vì vậy, nếu bất cứ ai đang tải phông chữ từ google, chỉ cần thêm nó type="text/css"và thông báo cảnh báo trong bảng điều khiển trình duyệt sẽ biến mất sau khi 'làm mới' cứng
lewis4u

6

Tôi chỉ có cùng một vấn đề và giải quyết nó bằng cách thay đổi

src: url("Roboto-Medium-webfont.eot?#iefix")

đến

src: url("Roboto-Medium-webfont.eot?#iefix") format('embedded-opentype')

6

Đối với tôi, lỗi này xảy ra khi tôi tham chiếu phông chữ google bằng https. Khi tôi chuyển sang http, lỗi đã biến mất. (và vâng, tôi đã thử nhiều lần để xác nhận đó là nguyên nhân)

Vì vậy, tôi đã thay đổi:

@import url(https://fonts.googleapis.com/css?family=Roboto:300,400,100,500,900);

Đến:

@import url(http://fonts.googleapis.com/css?family=Roboto:300,400,100,500,900);

3
Tôi cũng gặp lỗi tương tự với phông chữ google, khi tôi tải lại khó khăn , vấn đề đã được giải quyết tự động!
Maulik Gangani

1
-1, xin lỗi. không nên sử dụng httpshỗ trợ thả cho việc này! Nó làm cho trang web của bạn không an toàn . Công việc quan sát của @MaulikGangani! Cân nhắc việc tích hợp nó vào câu trả lời của bạn
Ciprian Tomoiagă

4

Đôi khi sự cố này xảy ra khi bạn tải lên / tải xuống các phông chữ bằng phương pháp FTP sai. Phông chữ phải là FTP-ed bằng phương pháp nhị phân, không phải ASCII. (Tùy thuộc vào tâm trạng của bạn, nó có thể cảm thấy phản trực giác, lol). Nếu bạn ftp các tệp phông chữ bằng phương pháp ASCII, bạn có thể nhận được thông báo lỗi này. Nếu bạn ftp các tệp của mình bằng phương thức 'tự động' và bạn nhận được thông báo lỗi này, hãy thử ftp buộc phương thức nhị phân.


3

Tôi đã gặp vấn đề tương tự với font tuyệt vời v4.4 và tôi đã sửa nó bằng cách xóa định dạng woff2. Tôi chỉ nhận được cảnh báo trong Chrome.

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

1
Đúng! Tôi đã xóa định dạng ('woff2') và nó đã xóa các cảnh báo. Cảm ơn.
duyn9uyen 4/11/2016

3

Trong trường hợp của tôi, nó đã được gây ra với một tệp đường dẫn không chính xác, trong .htaccess. Vui lòng kiểm tra tính chính xác của đường dẫn tệp của bạn.


2

Đối với tôi, lỗi là quên đặt FTP vào chế độ nhị phân trước khi tải lên các tệp phông chữ.

Biên tập

Bạn có thể kiểm tra điều này bằng cách tải lên các loại dữ liệu nhị phân khác như hình ảnh. Nếu họ cũng không hiển thị, thì đây có thể là vấn đề của bạn.


Có một thuật ngữ khác cho điều này? Tôi dường như không thể tìm thấy tùy chọn đó trong một trong các máy khách FTP của mình.
Sarcoma

Tôi chỉ biết các thuật ngữ BIN và ASCII từ các trình duyệt dòng lệnh * nix. Tôi cho rằng nhiều khách hàng FTP hiện đại sẽ biết tệp nào là nhị phân và tệp nào không, vì vậy có lẽ đó không phải là vấn đề của bạn. Nếu bạn muốn kiểm tra xem máy khách FTP của mình có gửi ở chế độ nhị phân hay không, hãy sử dụng FTP để di chuyển dữ liệu nhị phân, như .jpg, sau đó thử xem nó. Nếu nó được gửi ở chế độ ASCII, nó sẽ không hiển thị. (Xem jscape.com/blog/ Kẻ )
Robert Gowland

Ah tôi hiểu rồi, cảm ơn vì lời giải thích. Tất cả các hình ảnh tôi đang tải lên đều ổn, cuối cùng tôi đã tìm thấy chế độ nhị phân trong FileZilla, thật không may cho tôi. Tôi không thể tìm thấy một tùy chọn trong PHP Storm cho hệ nhị phân, nhưng như tôi đã nói hình ảnh vẫn ổn, vì vậy tôi đoán đây không phải là vấn đề tôi gặp phải.
Sarcoma

1

Tôi cũng gặp vấn đề tương tự nhưng tôi đã giải quyết bằng cách thêm 'Loại nội dung': 'application / x-font-ttf' trong tiêu đề phản hồi cho tất cả các tệp .ttf


1
làm như thế nào ?
Baim sai

1

Trong trường hợp của tôi, điều này xảy ra bằng cách tạo tệp vá SVN bao gồm việc thêm các tệp phông chữ. Thích như vậy:

  1. Thêm tệp phông từ hệ thống tệp cục bộ vào thân cây bị lật đổ
  2. Thân cây hoạt động như mong đợi
  3. Tạo bản vá SVN cho các thay đổi trung kế, để bao gồm thêm các tệp phông chữ
  4. Áp dụng bản vá cho một chi nhánh khác
  5. Các tệp phông chữ được thêm vào nhánh lật đổ (và có thể được cam kết), nhưng bị lỗi, mang lại lỗi trong OP.

Giải pháp là tải các tệp phông chữ trực tiếp vào chi nhánh từ hệ thống tệp cục bộ của tôi. Tôi cho rằng điều này đã xảy ra vì các tệp vá SVN phải chuyển đổi mọi thứ sang định dạng ASCII và không nhất thiết phải giữ lại nhị phân cho các tệp phông chữ. Nhưng đó chỉ là dự đoán.


1

Trong trường hợp của tôi - sử dụng React with Gatsby - vấn đề đã được giải quyết bằng cách kiểm tra lại tất cả các đường dẫn của tôi. Tôi đã sử dụng React / Gatsby với Sass và các tệp nguồn Gatsby đang tìm kiếm các phông chữ ở một nơi khác với các tệp được biên dịch. Khi tôi sao chép các tập tin vào từng đường dẫn thì vấn đề này không còn nữa.


1

Trong trường hợp của tôi khi tải xuống một mẫu, các tệp phông chữ chỉ là các tệp trống. Có lẽ là một vấn đề với việc tải xuống. Chrome đã đưa ra lỗi chung này về nó. Lúc đầu, tôi nghĩ giải pháp thay đổi từ woffđể font-woffgiải quyết nó, nhưng nó chỉ khiến Chrome bỏ qua các phông chữ. Giải pháp của tôi là tìm từng phông chữ một và tải xuống / thay thế chúng.


0

Nếu bạn đang sử dụng express, bạn cần cho phép phân phát nội dung tĩnh bằng cách thêm một cái gì đó như: var server = express (); server.use (express.static ('./ công khai')); // trong đó công khai là thư mục gốc của ứng dụng, với các phông chữ có trong đó, ở mọi cấp độ, tức là công khai / phông chữ hoặc công khai / dist / phông chữ ... // Nếu bạn đang sử dụng kết nối, google cho một cấu hình tương tự.


0

Tôi sử dụng .Net Framework 4.5 / IIS 7

Để khắc phục, tôi đặt tệp Web.config vào thư mục có tệp phông chữ.

Nội dung của Web.config:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</configuration>


0

Nếu nó ở trên máy chủ (không phải trong localhost), thì hãy thử tải lên các phông chữ theo cách thủ công, vì đôi khi máy khách FTP (ví dụ: FileZilla) làm hỏng các tệp và nó có thể gây ra sự cố. Đối với tôi, tôi đã tải lên thủ công bằng giao diện Cpanel.


0

Trường hợp của tôi trông tương tự nhưng phông chữ bị hỏng (và vì vậy không thể giải mã). Nó được gây ra bởi cấu hình trong maven. Thêm nonFilteredFileExtension cho các tiện ích mở rộng phông chữ maven-resources-pluginđã giúp tôi:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
            <nonFilteredFileExtension>otf</nonFilteredFileExtension>
            <nonFilteredFileExtension>woff</nonFilteredFileExtension>
            <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
            <nonFilteredFileExtension>eot</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>
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.