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

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

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

Шрифт - это OTF.

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

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

Ответ 1

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

Ответ 2

Существует несколько форматов шрифтов, для которых можно установить типы 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#section-5... в нем конкретно говорится:

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

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

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

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

UPDATE 4 октября 2017: Мы можем следить за прогрессию формата WOFF2 здесь с большинством современных браузеров успешно поддерживающих формат. Кроме того, мы можем следить за трекером IETF верхнего уровня Media Type Request для комментариев (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

Ответ 3

Игнорировать предупреждение о хромировании. Для шрифтов OTF нет стандартного MIME-типа.

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

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

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

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

Ответ 4

С февраля 2017 RFC 8081 группирует все типы MIME для шрифтов по типу носителя font верхнего уровня. Старые типы MIME из моей первоначальной публикации теперь перечислены как устаревшие.

Типы шрифтов, перечисленные IANA, теперь:

Другие нестандартные форматы шрифтов оставлены как:


[Устаревшее оригинальное сообщение]

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

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

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

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

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

Ответ 5

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


В феврале этого года (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

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

Ответ 6

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.

Ответ 7

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

На основе RFC и IANA это, по-видимому, является текущим состоянием игры по состоянию на май 2013 года:

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

  • svg as "image/svg + xml"
  • woff как "application/font-woff"
  • eot как "application/vnd.ms-fontobject"

Это не официальные/назначенные и поэтому должны использовать синтаксис "x-":

  • ttf как "application/x-font-ttf"
  • otf как "application/x-font-opentype"

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

Ответ 8

Вот решение 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

Ответ 9

Начиная с марта 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)

См. подробнее...

Ответ 10

В пространстве eBook можно использовать следующее:

application/vnd.ms-opentype

Я бы предположил, что это то же самое для Интернета.

Ответ 12

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

Ответ 13

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

application/octet-stream

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

Cheers, Майкл

Ответ 14

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

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

Этот список соответствует патгу, найденному в Ошибка 111418 на webkit.org.

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

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