Тип Mime для шрифтів WOFF?


556

Якому типу mime слід подавати шрифти WOFF?

Я розміщую шрифти font/truetypetruetype (ttf) як і opentype (otf) як font/opentype, але не можу знайти правильний формат шрифтів WOFF.

Я спробував font/woff, font/webopenі font/webopentype, але Chrome все ще скаржиться:

"Ресурс інтерпретується як шрифт, але передається за допомогою програми MIME / oktet-stream."

Хтось знає?


1
Тож немає ніякого способу зупинити скарга на Chrome?
Джон Мі

1
Ось Node.js / Meteor Solution: mpm install mime
Eric Leroy

також зверніть увагу на інший конфігурацію, яка нарешті виправила мою проблему в IIS stackoverflow.com/questions/12458444/…
Іман,

1
font/woffтепер правильний тип MIME для woff, а Chrome не скаржиться.
Мікаель Дуї Болінджер

Відповіді:


737

Оновлення з коментаря Кіта Шоу 22 червня 2017 року:

Станом на лютий 2017 року, RFC8081 є запропонованим стандартом. Він визначає тип медіа верхнього рівня для шрифтів, тому стандартний тип медіа для WOFF та WOFF2 є наступним:

font/woff

font/woff2


У січні 2011 року було оголошено, що тим часом Chromium визнають

application/x-font-woff

як mime-тип для WOFF. Я знаю, що ця зміна зараз є в бета-версії Chrome, і якщо вона ще не стабільна, вона не повинна бути занадто далеко.


8
станом на Chromium 18.0, 2012/08/30, потрібно використовувати application / x-font-woff
cc young

6
Як сказав cc young, для того, щоб позбутися попередження Chrome "Ресурс інтерпретується як шрифт, але передається за допомогою програми MIME / font-woff", потрібно використовувати "application / x-font-woff"
Джеймі

9
Версія Chrome 24.0.1312.52, здається, все ще відповідає "Ресурс інтерпретується як шрифт, але передається ...", якщо ви використовуєте додаток / font-woff. Здається, поки що потрібно використовувати "application / x-font-woff".
Ніколі

4
Відповідно до наступного WebKit фіксації, font/woffі application/x-font-woffтреба увійти на сайт користь application/font-woff. Також попередження було перенесено на повідомлення журналу. trac.webkit.org/changeset/144763/trunk/Source/WebCore/inspector/…
Jorrit Schippers

6
А як щодо нового .woff2?
Людина-булочка

135

Для мене наступним є Берін, який працює у файлі .htaccess.

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

2
Я не можу повірити, що більшість людей не вважають це корисним. Це єдиний, хто працював на мене.
Тім Джойс

4
Під час задаю це питання «шрифт / Уофф» зробив НЕ робота. Хтось може підтвердити, що це зараз?
Ніко Бернс

5
У IIS Express ви можете додати елемент mimeMap до web.config під конфігурацією / system.webServer / staticContent:<mimeMap fileExtension=".woff" mimeType="font/woff" />
shovavnik

6
станом на Chrome 18 перестали працювати. тепер програма / x-font-woff, здається, працює.
cc молодий

4
Для запису Google Fonts використовує font/woffта font/woff2.
НезадоволенняЗачеплення

55

Це буде application/font-woff.

див. http://www.w3.org/TR/WOFF/#appendix-b (Рекомендація кандидата W3C 04 серпня 2011 р.)

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

Із нот шрифту Mozilla css

У Gecko для веб-шрифтів застосовується те саме обмеження домену (файли шрифтів повинні бути на тому ж домені, що і сторінка, що використовує їх), якщо для зменшення цього обмеження не використовуються засоби доступу HTTP. Примітка: Оскільки для визначених типів MIME для шрифтів TrueType, OpenType та WOFF не визначені, тип MIME у вказаному файлі не враховується.

джерело: https://developer.mozilla.org/en/CSS/@font-face#Notes


3
Але, як вказував Марсель після, Chromium розпізнає application / x-font-woff відповідно до RFC 2048, поки не буде прийнята заявка / font-woff.
jflaflamme

2
Специфікація WOFF тепер є рекомендацією і не зміниться від application / font-woff w3.org/TR/WOFF/#appendix-b
Steve Workman

26

Посилання на додавання типів mime шрифту до .NET / IIS

через 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>

через IIS Manager

скріншот додавання типів mime woff до IIS


22

NGINX РІШЕННЯ

файл

/etc/nginx/mime.types

або

/usr/local/nginx/conf/mime.types

додати

font/ttf                      ttf;
font/opentype                 otf;
font/woff                     woff;
font/woff2                    woff2;
application/vnd.ms-fontobject eot;

видалити

application/octet-stream        eot;

ДОВІДКИ

RFC @ 02.2017

https://tools.ietf.org/html/rfc8081#page-15

https://www.iana.org/assignments/media-types/media-types.xhtml

Завдяки Майку Фулчеру

http://drawingablank.me/blog/font-mime-types-in-nginx.html


19

Станом на лютий 2017 року, RFC8081 є запропонованим стандартом. Він визначає тип медіа верхнього рівня для шрифтів, тому стандартний тип медіа для WOFF та WOFF2 є наступним:

font/woff
font/woff2

10

Примітка. Ця відповідь була правильною на той час, але застаріла в 2017 році, коли було випущено RFC 8081

Не існує fontтипу MIME! Таким чином, font/xxxЗАВЖДИ неправильно


@UmarFarooqKhawaja ця відповідь неповна, але не помилкова. Єдине, що змінилося між цією відповіддю та вашим коментарем, application/font-woffбуло додане до стандарту, замінивши такі речі, як application/x-font-woff(власне оновлення програмного забезпечення на практиці - інша справа). Ніщо не зробило справжні типи контенту форми font/xxxдійсними.
Джон Ханна


5

Додайте наступне до свого .htaccess

AddType font/woff woff

Щасти




2

Я знаю, що цей пост є старим, але витративши багато годин на спроби змусити шрифти працювати на моїй локальній машині nginx та спробувати багато рішень, я нарешті отримав той, який працював на мене як на шарм.

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

Всередині дужок ви можете розмістити розширення своїх шрифтів або загалом файлів, які ви хочете завантажити. Наприклад, я використовував його для шрифтів та зображень (png, jpg тощо), а також не плутайте, що це рішення застосовується лише для шрифтів.

Просто покладіть його у свій конфігураційний файл nginx, перезапустіть, і я сподіваюся, що він працює і для вас!


1

Можливо, це комусь допоможе. Я бачив, що на IIS 7 .ttfвже відомий мім-тип. Він налаштований як:

application/octet-stream

Так що я просто додав , що для всіх типів CSS шрифту ( .oet, .svg, .ttf, .woff) і IIS почав служити їм. Інструменти для розробників Chrome також не скаржаться на повторну інтерпретацію типу.

Ура, Майкл


8
"application / octet-stream" - це еквівалент веб-сервера "Я не знаю, що це".
Синхро

1
Так, я знаю. Але ключовим моментом було те, що він працював, тоді як багато більш конкретних варіантів, здавалося, не призводили до того, що шрифти використовувались над IIS7. Мій коментар був більш прагматичним, ніж намагатися бути найправильнішим (бо це не спрацювало).
Майкл Кеннеді

1

Для всіх Solution index.php дозволено видалити URL-адресу форми та файл woff. для запису нижче коду у файл .htaccess і зробіть це чергування у вашому файлі програми / config / config.php: $ config ['index_page'] = '';

Для лише хостинг-сервера Linux. Дані про файл .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 автоматично визначається .ttf як application / oktet-stream, який, здається, працює добре, а fontshop рекомендує .woff визначати як application / octet-stream


0

WOFF:

  1. Відкритий формат шрифту
  2. Вона може бути складена з контурами TrueType або PostScript (CFF)
  3. На даний момент він підтримується FireFox 3.6+

Спробуйте додати це:

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


-1

Тип міми може бути не єдиною вашою проблемою. Якщо файл шрифту розміщено на S3 або іншому домені, у вас може бути додатково проблема, що Firefox не завантажуватиме шрифти з різних доменів. Це легко виправити за допомогою Apache, але в Nginx я читав, що вам може знадобитися кодувати файли шрифтів у base-64 та вставляти їх безпосередньо у свій файл css шрифту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.