Исправьте директивы Apache AddType для типов MIME шрифтов

Я использую @font-face для встроенных шрифтов (спасибо Paul Irish). Пытаясь исправить предупреждение Chrome о неправильном типе MIME для шрифтов woff, я обнаружил массу противоречивых предложений.

Кажется, все согласны с тем, что.eot шрифты (для IE 6-8?) Должны обслуживаться с использованием

AddType application/vnd.ms-fontobject .eot

Для шрифтов.ttf (старые браузеры не IE) я видел

AddType application/x-font-ttf        .ttf
AddType application/octet-stream      .ttf
AddType font/truetype                 .ttf
AddType font/ttf                      .ttf

И для.woff шрифтов (новый стандарт?) Я видел

AddType application/font-wof          .woff
AddType application/x-font-woff       .woff
AddType application/x-woff            .woff

Я понимаю, что правильным типом MIME для woff будет application/font-woff, но пока стандарт не станет официальным, Chrome понимает application/x-font-woff.

Я понимаю, что наполовину ответил на мой вопрос, задавая его, но вопрос действительно: есть ли авторитетное руководство или дополнительный совет о том, какие типы MIME следует использовать для шрифтов?

Обновление (на случай, если это кому-нибудь поможет): поскольку в этом нет ничего авторитетного, я остановился на использовании следующих типов MIME шрифтов в моем.htaccess (что по крайней мере делает Chrome счастливым):

AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf        .ttf
AddType application/x-font-woff       .woff

6 ответов

Решение

Обычно MIME-типы поступают из RFC. У вас есть исчерпывающий список на сайте IANA, но ни один из них не относится к расширениям шрифтов. Кроме того, документ, описывающий формат WOFF, является черновым и не относится к типу mime для использования. Похоже, что пока нет надежных ссылок на эту тему.

Обновить

W3C выпустил WOFF в качестве рекомендации, и в Приложении B определили тип MIME как application/font-woff, Он также был добавлен на сайт IANA, который вы упомянули. -GKFX

Я понимаю, что этот вопрос старый, но для тех, кто ищет быстрое копирование / вставку для добавления шрифтов MIME-типов в их.htaccess:

<IfModule mod_mime.c>
    AddType application/vnd.ms-fontobject    .eot
    AddType application/x-font-opentype      .otf
    AddType image/svg+xml                    .svg
    AddType application/x-font-ttf           .ttf
    AddType application/font-woff            .woff
    AddType application/font-woff2           .woff2
</IfModule>

Я только что проверил официальный список IANA. Похоже, что это текущее состояние игры на май 2013 года:

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

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

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

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

Похоже, что тип 'font' не существует, поэтому любой тип времени, который вы видите 'font / xxx', является поддельным. Возможно, x-font / xxx будет допустимым, не уверен. IIS8 поставляется с парой записей, как это. Не уверен, что MS считает, что эти 'font / xxx' необходимы для совместимости, или они просто не читают RFC:-)

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

Я думаю, что стоит упомянуть, что с марта 2013 года IANA .otf а также .ttf Расширения MIME-типа приложения / font-sfnt.

Полный и актуальный список официальных типов MIME см. В моем ответе о правильном типе MIME для шрифтов.

В 2019 году можно использовать:

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

Вот пример кеширования всех типов шрифтов в apache (проверено на Google Page Speed):

      AddType application/font-sfnt            otf ttf
AddType application/font-woff            woff
AddType application/font-woff2           woff2
AddType application/vnd.ms-fontobject    eot


ExpiresByType application/font-woff "access plus 1 month" 
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType application/font-sfnt "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
Другие вопросы по тегам