Правильный тип MIME для шрифтов

Выполняя поиск в Интернете, я нахожу кучу разных предложений о том, что является правильным MIME-типом для шрифта, но мне еще предстоит попробовать любой MIME-тип, который избавляет меня от предупреждения Chrome, например:

Ресурс интерпретируется как шрифт, но передается с шрифтом MIME type / otf

Шрифт OTF.

Я пробовал следующие типы MIME до сих пор

  • шрифт / OTF
  • Применение / шрифта OTF
  • Применение / шрифт
  • Приложение / OTF
  • Применение / октет-поток
  • применение / х-шрифт-OTF
  • application / x-font-TrueType (я знаю, что это не правда, но один источник процитировал это для OTF)

14 ответов

Решение

Попробуйте использовать "шрифт /opentype".

Существует несколько форматов шрифтов, для которых можно установить типы MIME как на серверах Apache, так и на серверах IIS. Мне традиционно повезло со следующим:

svg   as "image/svg+xml"                  (W3C: August 2011)
ttf   as "application/x-font-ttf"         (IANA: March 2013)
      or "application/x-font-truetype"
otf   as "application/x-font-opentype"    (IANA: March 2013)
woff  as "application/font-woff"          (IANA: January 2013)
woff2 as "application/font-woff2"         (W3C W./E.Draft: May 2014/March 2016)
eot   as "application/vnd.ms-fontobject"  (IANA: December 2005)
sfnt  as "application/font-sfnt"          (IANA: March 2013) 

По словам Специальной рабочей группы по Интернету, которая поддерживает первоначальный документ, касающийся многоцелевых расширений электронной почты в Интернете (типы MIME), здесь: http://tools.ietf.org/html/rfc2045... в нем конкретно говорится:

"Ожидается, что дополнения к большему набору поддерживаемых типов, как правило, могут быть выполнены путем создания новых подтипов этих начальных типов. В будущем большее количество типов верхнего уровня может быть определено только путем расширения стандарта на этот стандарт. Если по какой-либо причине должен использоваться другой тип верхнего уровня, ему должно быть присвоено имя, начинающееся с "X-", чтобы указать его нестандартный статус и избежать возможного конфликта с будущим официальным именем".

Как бы то ни было, со временем дополнительные типы MIME добавляются по мере того, как создаются и принимаются стандарты, поэтому мы видим примеры конкретных типов MIME, таких как vnd.ms-fontobject и тому подобное.

ОБНОВЛЕНИЕ 16 августа 2013 г.: WOFF был официально зарегистрирован в IANA 3 января 2013 г., а Webkit обновлен 5 марта 2013 г., и браузеры, использующие это обновление в своих последних версиях, начнут выдавать предупреждения о типах MIME сервера со старыми объявление x-font-woff. Поскольку предупреждения только раздражают, я бы порекомендовал сразу же перейти на утвержденный тип MIME. В идеальном мире предупреждения разрешатся вовремя.

ОБНОВЛЕНИЕ 26 февраля 2015: WOFF2 теперь в черновике W3C Editor с предложенным mime-типом. Вероятно, он должен быть представлен в IANA в следующем году (возможно, к концу 2016 года) в соответствии с более поздними сроками выполнения. Кроме того, SFNT, формат шрифта масштабируемого / сплайнового контейнера, используемый в справочной таблице веб-шрифтов Google с их библиотекой sfntly java, уже зарегистрирован как тип MIME в IANA и может быть добавлен в этот список в зависимости от индивидуальных потребностей.

ОБНОВЛЕНИЕ 4 октября 2017: Здесь мы можем следить за развитием формата WOFF2, так как большинство современных браузеров успешно поддерживают этот формат. Кроме того, мы можем использовать трекер IETF "RFC" для отслеживания запросов на комментарии (RFC) и документ, относящийся к последнему набору предлагаемых типов шрифтов для утверждения.


Для желающих встроить гарнитуру в правильном порядке в ваш CSS, пожалуйста, посетите эту статью. Но снова мне повезло со следующим заказом:

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

Для авто-свойств Subversion они могут быть перечислены как:

# Font formats
svg   = svn:mime-type=image/svg+xml
ttf   = svn:mime-type=application/x-font-ttf
otf   = svn:mime-type=application/x-font-opentype
woff  = svn:mime-type=application/font-woff
woff2 = svn:mime-type=application/font-woff2
eot   = svn:mime-type=application/vnd.ms-fontobject
sfnt  = svn:mime-type=application/font-sfnt

Не обращайте внимания на предупреждение Chrome. Не существует стандартного типа MIME для шрифтов OTF.

Шрифт /opentype может заставить замолчать предупреждение, но это не делает его "правильным".

Возможно, вам лучше создать его, например, с помощью "application/x-opentype", потому что, по крайней мере, "application" - это зарегистрированный тип контента, а "font" - нет.

Обновление: OTF остается проблемой, но в январе 2013 года WOFF разработала тип IANA MIME для приложений / font-woff.

Обновление 2: OTF увеличил тип MIME: application / font-sfnt В марте 2013 года. Этот тип также применяется к.ttf

Поскольку в Интернете все еще много путаницы в отношении типов MIME для веб-шрифтов, я подумал, что дам текущий ответ, дополненный датами вступления в силу и поддержкой ссылок на IANA и W3C.

Вот официальные типы MIME для веб-шрифтов:

Обратите внимание, что есть движение, чтобы изменить все вышеперечисленное на MIME-типы font/XXX, что подтверждается W3C в предложении WOFF v2. Это отслеживается Инженерной рабочей группой по Интернету (IETF) в разделе Тип верхнего уровня шрифта, и в феврале 2017 года был утвержден статус RFC (см. RFC 8081), поэтому все может измениться!

Что касается темы веб-серверов, то стоит упомянуть, что HTTP-ответы могут gzip (или иным образом сжать) все вышеперечисленные форматы шрифтов, кроме .woff & .woff2 которые уже сильно сжаты.

Я говорю больше в MIME Types для веб-шрифтов с (Fantom) простыней.

В качестве конкретного примера одной из двух сложных задач в области вычислений интересно посмотреть, как изменились ответы на этот вопрос с момента его публикации. К счастью, силы, которые были наведены в хаосе:


В феврале этого года (2017) W3C опубликовал трек стандартов RFC 8081: "Тип шрифта" верхнего уровня, который значительно упрощает соответствующие типы медиа для файлов шрифтов:

Эта заметка служит для регистрации и документирования "шрифта" типа носителя верхнего уровня, в соответствии с которым могут быть зарегистрированы подтипы для форматов представления шрифтов. Этот документ также служит в качестве приложения для регистрации набора предполагаемых подтипов, которые являются репрезентативными для некоторых существующих подтипов, которые уже используются и в настоящее время регистрируются в дереве "application" посредством их отдельных регистраций.

Это довольно читаемый документ, в котором описывается исторический контекст (отсутствие "регистрации форматов для шрифта"), что привело к запутанному сочетанию типов и подтипов мультимедиа. В связи с (относительно) недавним ростом популярности загружаемых веб-шрифтов W3C осознал необходимость "интуитивно понятного типа шрифта верхнего уровня". То, что они придумали, это... font,

Соответственно, IANA с тех пор обновила свой официальный список типов носителей с помощью font тип носителя и все его подтипы, которые они в настоящее время распознают:

collection  font/collection
otf     font/otf
sfnt    font/sfnt
ttf     font/ttf
woff    font/woff
woff2   font/woff2

Надеюсь, что это последний ответ, в котором нуждается этот вопрос.

Вот решение NGINX

файл

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

добавлять

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

Удалить

application/octet-stream        eot;

Спасибо Майку Фулчеру

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

FWIW относительно Apache 2.2 VirtualHosting и mod_mime, протестированных на Debian Linux и OS X Leopard и Snow Leopard:

Если у вас есть конфигурация VirtualHost, вы захотите добавить типы через директиву AddType следующим образом, по крайней мере, в нижней части конфигурации следующим образом:

....
   AddType font/opentype .otf
   AddType font/ttf .ttf
</VirtualHost>

Протестирован с Chrome Unstable/Trunk и Safari WebKit Nightly, который устраняет предупреждения о потоке mime-октетов для типов шрифтов ttf и otf.

Примечание: .htaccess не имеет никакого эффекта при работе с VirtualHosting. Если вы разрабатываете для нескольких сайтов, вы будете использовать разработку VirtualHosting, и каждая конфигурация будет нуждаться в этих дополнениях AddType.

Я только что проверил официальный список IANA. Я полагаю, что приведенный здесь ответ "font / xxx" является неправильным, поскольку в стандарте MIME отсутствует тип "font".

Исходя из RFC и IANA, похоже, что текущее состояние игры на май 2013 года:

Эти три являются официальными и назначены IANA:

  • SVG как "изображение / SVG + XML"
  • woff как "application/font-woff"
  • обозначается как "application/vnd.ms-fontobject"

Они не являются официальными / назначенными, и поэтому должны использовать синтаксис 'x-':

  • ттф как "приложение / x-font-ttf"
  • otf как "application / x-font-opentype"

Приложение / font-woff выглядит новым и, возможно, только официальным с января 2013 года. Так что "application/x-font-woff" может быть более безопасным / более совместимым в краткосрочной перспективе.

С марта 2013 года IANA.ORG рекомендует для .otf:
application/font-sfnt

Другие шрифты:

.eot  ->  application/vnd.ms-fontobject (as from December 2005)
.otf  ->  application/font-sfnt         (as from March 2013)
.svg  ->  image/svg+xml                 (as from August 2011)
.ttf  ->  application/font-sfnt         (as from March 2013)
.woff ->  application/font-woff         (as from January 2013)

Смотрите больше...

По состоянию на февраль 2017 года в RFC 8081 добавлены типы носителей font/*, которые также перечислены в списке типов носителей IANA. font/otf находится в этом списке.

В пространстве электронных книг можно использовать следующее:

application/vnd.ms-opentype

Я полагаю, что это то же самое для Интернета.

Может быть, это кому-то поможет. Я видел это на IIS 7 .ttf уже известный MIME-тип. Это настроено как:

application/octet-stream

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

Ура, Майкл

Один из способов отключить это предупреждение от Chrome - обновить Chrome, а затем убедиться, что ваш тип mime является одним из следующих:

 "font/ttf"
 "font/opentype"
 "application/font-woff"
 "application/x-font-type1"
 "application/x-font-ttf"
 "application/x-truetype-font"

Этот список в соответствии с патчем, найденным в Bug 111418 на webkit.org.

Тот же патч переводит сообщение из "Предупреждения" в "Журнал", поэтому простое обновление Chrome до любой версии, выпущенной в марте 2013 года, избавит от желтого треугольника.

Поскольку вопрос заключается в том, чтобы отключить предупреждение Chrome, и люди могут по каким-то причинам удерживать старые версии Chrome, я решил, что это стоит добавить.

Другие вопросы по тегам