Loại Mime cho phông chữ WOFF?


556

Loại phông chữ WOFF nên được phục vụ như thế nào?

Tôi đang phục vụ phông chữ font/truetypetruetype (ttf) và opentype (otf) font/opentype, nhưng tôi không thể tìm thấy định dạng chính xác cho phông chữ WOFF.

Tôi đã thử font/woff, font/webopenfont/webopentype, nhưng Chrome vẫn phàn nàn:

"Tài nguyên được hiểu là phông chữ nhưng được chuyển bằng ứng dụng loại MIME / octet-stream."

Có ai biết không?


1
Vì vậy, không có cách nào để ngăn chặn Chrome phàn nàn?
John Mee

1
Đây là Giải pháp Node.js / Sao băng: npm cài đặt mime
Eric Leroy

cũng lưu ý cấu hình khác mà cuối cùng đã khắc phục sự cố của tôi trong IIS stackoverflow.com/questions/12458444/
Khăn

1
font/woffhiện là loại MIME chính xác cho woff và Chrome không phàn nàn.
Mikael Dúi Bolinder

Câu trả lời:


737

Cập nhật từ bình luận của Keith Shaw vào ngày 22 tháng 6 năm 2017:

Kể từ tháng 2 năm 2017, RFC8081 là tiêu chuẩn được đề xuất. Nó xác định loại phương tiện cấp cao nhất cho phông chữ, do đó loại phương tiện tiêu chuẩn cho WOFF và WOFF2 như sau:

font/woff

font/woff2


Vào tháng 1 năm 2011 , thông báo rằng Chromium sẽ nhận ra

application/x-font-woff

là loại mime cho WOFF. Tôi biết thay đổi này hiện đã có trong Chrome beta và nếu chưa ổn định, thì nó không nên quá xa.


8
kể từ Chromium 18.0, 2012/08/30, cần sử dụng application / x-font-woff
cc young

6
Như cc young đã nói, để thoát khỏi cảnh báo Chrome "Tài nguyên được hiểu là Phông chữ nhưng được chuyển bằng ứng dụng loại MIME / phông chữ-woff", bạn cần sử dụng "application / x-font-woff"
Jamie

9
Phiên bản Chrome 24.0.1312.52 dường như vẫn trả lời với "Tài nguyên được hiểu là Phông chữ nhưng được chuyển ..." nếu bạn sử dụng ứng dụng / phông chữ. Hiện tại có vẻ vẫn cần sử dụng "application / x-font-woff".
Nicholi

4
Theo cam kết Webkit sau đây, font/woffapplication/x-font-woffsẽ được gỡ bỏ theo hướng có lợi application/font-woff. Ngoài ra, cảnh báo đã được hạ xuống thành một thông điệp tường trình. trac.webkit.org/changeset/144763/trunk/Source/WebCore/inspector/ mẹo
Jorrit Schippers

6
Còn cái mới .woff2thì sao?
Người đàn ông Muffin

135

Đối với tôi, cái tiếp theo đã được làm việc trong một tập tin .htaccess.

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
AddType font/woff2 .woff2   

2
Tôi không thể tin rằng nhiều người không tìm thấy điều này hữu ích. Đây là người duy nhất làm việc cho tôi.
Tim Joyce

4
Tại thời điểm đặt câu hỏi này, "font / woff" không hoạt động. Bất cứ ai có thể xác nhận rằng nó bây giờ không?
Nico Burns

5
Trong IIS Express, bạn có thể thêm phần tử mimeMap vào web.config trong cấu hình / system.webServer / staticContent:<mimeMap fileExtension=".woff" mimeType="font/woff" />
shovavnik

6
kể từ Chrome 18, đã ngừng hoạt động. bây giờ ứng dụng / x-font-woff dường như hoạt động.
cc trẻ

4
Đối với bản ghi, Google Fonts sử dụng font/wofffont/woff2.
DisgruntledGoat

55

Nó sẽ được application/font-woff.

xem http://www.w3.org/TR/WOFF/#appcill-b (Khuyến nghị của ứng viên W3C ngày 04 tháng 8 năm 2011)

http://www.w3.org/2002/06/registering-mediatype.html

Từ ghi chú mặt chữ css của Mozilla

Trong Gecko, phông chữ web phải tuân theo cùng một giới hạn tên miền (các tệp phông chữ phải nằm trên cùng một tên miền với trang sử dụng chúng), trừ khi các điều khiển truy cập HTTP được sử dụng để nới lỏng hạn chế này. Lưu ý: Vì không có loại MIME được xác định cho phông chữ TrueType, OpenType và WOFF, loại MIME của tệp được chỉ định không được xem xét.

nguồn: https://developer.mozilla.org/en/CSS/@font-face#Notes


3
Nhưng như được chỉ ra bởi Marcel sau đó, Chromium sẽ nhận ra ứng dụng / x-font-woff theo RFC 2048 cho đến khi ứng dụng / font-woff được chấp nhận.
jflaflamme

2
Thông số WOFF hiện là một đề xuất và sẽ không thay đổi từ ứng dụng / font-woff w3.org/TR/WOFF/#appcill-b
Steve Workman

26

Tham khảo để thêm các loại mime phông chữ vào .NET / IIS

qua web.config

<system.webServer>
  <staticContent>
     <!-- remove first in case they are defined in IIS already, which would cause a runtime error -->
     <remove fileExtension=".woff" />
     <remove fileExtension=".woff2" />
     <mimeMap fileExtension=".woff" mimeType="font/woff" />
     <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
  </staticContent>
</system.webServer>

thông qua quản lý IIS

ảnh chụp màn hình thêm các loại mime woff vào IIS



19

Kể từ tháng 2 năm 2017, RFC8081 là tiêu chuẩn được đề xuất. Nó xác định loại phương tiện cấp cao nhất cho phông chữ, do đó loại phương tiện tiêu chuẩn cho WOFF và WOFF2 như sau:

font/woff
font/woff2

10

Lưu ý: Câu trả lời này đúng vào thời điểm đó nhưng đã trở nên lỗi thời vào năm 2017 khi RFC 8081 được phát hành

Không có fontloại MIME! Như vậy, font/xxxLUÔN LUÔN là sai.


@UmarFarooqKhawaja câu trả lời này không đầy đủ, nhưng không sai. Điều duy nhất thay đổi giữa câu trả lời này và nhận xét của bạn application/font-woffđã được thêm vào tiêu chuẩn, thay thế những thứ như application/x-font-woff(cập nhật phần mềm thực tế trong thực tế là một vấn đề khác). Không có gì làm cho madey-uppey các loại nội dung của biểu mẫu font/xxxhợp lệ.
Jon Hanna


5

Thêm phần sau vào .htaccess của bạn

AddType font/woff woff

chúc may mắn


4

@Nico ,

Hiện tại không có tiêu chuẩn được xác định cho loại mime phông chữ woff. Tôi sử dụng dịch vụ cdn phân phối phông chữ và nó sử dụng phông chữ / woff và tôi nhận được cảnh báo tương tự trong chrome.

Tham khảo: Cơ quan cấp số Internet



2

Tôi biết bài đăng này là cũ nhưng sau khi dành nhiều giờ để cố gắng làm cho phông chữ hoạt động trên máy cục bộ nginx của tôi và thử hàng tấn giải pháp, cuối cùng tôi đã có được một giải pháp phù hợp với tôi.

location ~* \.(eot|otf|ttf|woff|woff2)$ {
    add_header Access-Control-Allow-Origin *;
}

Trong dấu ngoặc đơn, bạn có thể đặt các phần mở rộng của phông chữ hoặc nói chung là các tệp bạn muốn tải. Ví dụ, tôi đã sử dụng nó cho phông chữ và cho hình ảnh (png, jpg, v.v.) vì vậy đừng nhầm lẫn rằng giải pháp này chỉ áp dụng cho phông chữ.

Chỉ cần đặt nó vào tập tin cấu hình nginx của bạn, khởi động lại và tôi hy vọng nó cũng hoạt động cho bạn!


1

Có lẽ điều này sẽ giúp được ai đó. Tôi thấy rằng trên IIS 7 .ttfđã là một loại mime được biết đến. Nó được cấu hình là:

application/octet-stream

Vì vậy, tôi chỉ nói thêm rằng đối với tất cả các loại font chữ CSS ( .oet, .svg, .ttf,.woff ) và IIS bắt đầu phục vụ họ. Các công cụ phát triển Chrome cũng không phàn nàn về việc diễn giải lại loại này.

Chúc mừng, Michael


8
'application / octet-stream' là máy chủ web tương đương với câu nói "Tôi không biết đây là gì".
Synchro

1
Vâng tôi biết. Nhưng điểm mấu chốt là nó hoạt động trong khi nhiều tùy chọn cụ thể hơn dường như không dẫn đến việc phông chữ được sử dụng trên IIS7. Nhận xét của tôi thực dụng hơn là cố gắng trở thành chính xác nhất (vì điều đó không hiệu quả).
Michael Kennedy

1

Đối với tất cả Giải pháp index.php, xóa url mẫu và tệp woff được phép. để viết mã bên dưới vào tệp .htaccess và thực hiện thay thế này cho tệp application / config / config.php của bạn: $ config ['index_page'] = '';

Chỉ dành cho máy chủ lưu trữ Linux. chi tiết tập tin .htaccess

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

0

IIS tự động định nghĩa .ttf là application / octet-stream có vẻ hoạt động tốt và fontshop khuyến nghị .woff được định nghĩa là application / octet-stream


0

GIỜ:

  1. Định dạng phông chữ mở web
  2. Nó có thể được biên dịch với các phác thảo TrueType hoặc PostScript (CFF)
  3. Nó hiện đang được hỗ trợ bởi FireFox 3.6+

Cố gắng thêm rằng:

AddType application/vnd.ms-fontobject .eot
AddType application/octet-stream .otf .ttf


-1

Loại Mime có thể không phải là vấn đề duy nhất của bạn. Nếu tệp phông chữ được lưu trữ trên S3 hoặc tên miền khác, bạn cũng có thể gặp vấn đề là Firefox sẽ không tải phông chữ từ các tên miền khác nhau. Đây là một sửa chữa dễ dàng với Apache, nhưng trong Nginx, tôi đã đọc rằng bạn có thể cần phải mã hóa các tệp phông chữ của mình trong cơ sở 64 và nhúng chúng trực tiếp vào tệp css phông chữ của bạn.

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.