Tipo MIME apropiado para fuentes

249

Al buscar en la web, encuentro montones de sugerencias diferentes sobre cuál es el tipo MIME apropiado para una fuente, pero aún no he probado ningún tipo MIME que me libere de una advertencia de Chrome como la siguiente:

Recurso interpretado como fuente pero transferido con fuente tipo MIME / otf

La fuente es un OTF.

He probado los siguientes tipos MIME hasta ahora

  • font / otf
  • aplicación / font-otf
  • aplicación / fuente
  • aplicación / otf
  • application / octet-stream
  • aplicación / x-font-otf
  • application / x-font-TrueType (Sé que no es truetype, pero una fuente lo citó para OTF)
David Hedlund
fuente
3
¿Cómo se escribe realmente el encabezado para esto? No estoy realmente seguro de qué hacer. Saludos por cualquier ayuda que pueda dar.
Josh Smith el
1
@ Josh: si está sirviendo la fuente a través del código, desea establecer el encabezado "content-type" en "font / opentype" (si está utilizando un OTF como en mi pregunta), pero si simplemente apuntando a un archivo de fuente física, podría ser más fácil configurar los tipos MIME en su servidor web. No sé qué servidor web está utilizando, haga una búsqueda en Google de su servidor + tipos mime o comience una nueva pregunta sobre SO que describa su problema.
David Hedlund
2
El titulo esta mal. Debería ser la advertencia "Cómo silenciar el recurso" interpretado como fuente "en Chrome
djsadinoff
2
@djs: ¡concedido! Sabes, si pudiera encontrar una manera de hacer que Chrome recuerde que quiero que mi consola muestre mensajes de registro y errores, pero no advertencias, hay una buena posibilidad de que nunca hubiera hecho esta pregunta en primer lugar.
David Hedlund el
Chrome nos advierte que está haciendo lo que le pedimos. ¡Prefiero ver una advertencia cuando descubrió con éxito los mapas de bits para usar para glifos si usaste @ font-face con un archivo .BMP!
Cardiff Space Man

Respuestas:

137

Intenta usar "font / opentype".

spd
fuente
51
Sin embargo, este es un tipo MIME ilegal: no hay "fuente /" en los tipos MIME oficiales. Un mejor tipo mime sería "application / x-font-opentype" o "application / octet-stream". El primero es básicamente "tipo MIME no registrado con este nombre", el segundo solo "datos binarios"
dtech
No me funciona en Chrome 16. Uno que funcionó fue: application / vnd.oasis.opendocument.formula-template.
jayarjo
16
Parece que el ganador actual es: application / x-font-woff - ¡espero que ayude!
busticado
77
@busticado esto se ha cambiado a application / font-woff ver w3.org/TR/WOFF/#appendix-b
Holger
210

Hay varios formatos de fuente para los que se pueden establecer tipos MIME, tanto en los servidores Apache como en los servidores IIS. Tradicionalmente he tenido suerte con lo siguiente:

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) 

De acuerdo con el Grupo de trabajo de ingeniería de Internet que mantiene el documento inicial con respecto a las Extensiones multipropósito de correo de Internet (tipos MIME) aquí: http://tools.ietf.org/html/rfc2045#section-5 ... dice específicamente:

" Se espera que las adiciones al conjunto más amplio de tipos admitidos generalmente se puedan lograr mediante la creación de nuevos subtipos de estos tipos iniciales. En el futuro, se pueden definir más tipos de nivel superior solo por una extensión de seguimiento de estándares a este estándar Si se va a utilizar otro tipo de nivel superior por algún motivo, se le debe dar un nombre que comience con "X-" para indicar su estado no estándar y evitar un posible conflicto con un futuro nombre oficial " .

Por así decirlo, y con el tiempo, se agregan tipos MIME adicionales a medida que se crean y aceptan estándares, por lo tanto, vemos ejemplos de tipos MIME específicos del proveedor, como vnd.ms-fontobject y similares.

ACTUALIZACIÓN 16 de agosto de 2013: WOFF se registró formalmente en IANA el 3 de enero de 2013 y Webkit se actualizó el 5 de marzo de 2013 y los navegadores que obtienen esta actualización en sus últimas versiones comenzarán a emitir advertencias sobre los tipos MIME del servidor con los antiguos Declaración x-font-woff. Como las advertencias son solo molestas, recomendaría cambiar al tipo MIME aprobado de inmediato. En un mundo ideal, las advertencias se resolverán a tiempo.

ACTUALIZACIÓN 26 de febrero de 2015: WOFF2 está ahora en el borrador del editor del W3C con el tipo mimo propuesto. Probablemente debería enviarse a la IANA el próximo año (posiblemente a fines de 2016) siguiendo los plazos de progreso más recientes. Además, SFNT, el formato de fuente del contenedor escalable / spline utilizado en la referencia de la tabla principal de Google Web Fonts con su biblioteca java sfntly y ya está registrado como un tipo MIME con IANA y podría agregarse a esta lista también dependiendo de la necesidad individual.

ACTUALIZACIÓN 4 de octubre de 2017: podemos seguir la progresión del formato WOFF2 aquí con la mayoría de los navegadores modernos que admiten el formato con éxito. Además, podemos seguir el rastreador y el documento de solicitud de comentarios (RFC) de tipo de medio de "fuente" de tipo superior de IETF sobre el último conjunto de tipos de fuente propuestos para su aprobación.


Para aquellos que deseen incrustar el tipo de letra en el orden correcto en su CSS, visite este artículo . Pero nuevamente, tuve suerte con el siguiente orden:

@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;
}

Para las propiedades automáticas de Subversion, estas se pueden enumerar como:

# 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
Mike Kormendy
fuente
Buenas, gracias. Tenía mensajes de error con .woff y esto lo solucionó en mi archivo .htaccess. Yo solíaAddType application/x-font-woff
Danny Englander
application / x-font-opentype y application / x-font-ttf funcionan perfectamente para Linux Gnome Shell
Schmoove
1
El ttf, otf y woff2 están desactualizados. Ver stackoverflow.com/a/20723357/1356047
Jonas Berlin
126

Ignora la advertencia de cromo. No hay un tipo MIME estándar para las fuentes OTF.

font / opentype puede silenciar la advertencia, pero eso no lo convierte en lo "correcto".

Podría decirse que es mejor inventar uno, por ejemplo, con "application / x-opentype" porque al menos "application" es un tipo de contenido registrado, mientras que "font" no lo es.

Actualización: OTF sigue siendo un problema, pero WOFF creció un tipo de aplicación / font-woff de IANA MIME en enero de 2013.

Actualización 2: OTF ha desarrollado un tipo MIME: application / font-sfnt en marzo de 2013. Este tipo también se aplica a .ttf

djsadinoff
fuente
2
Interesante. ¿Tiene alguna referencia que respalde esto?
Kzqai
18
No hay ningún tipo MIME: "Nota: debido a que no hay tipos MIME definidos para las fuentes TrueType, OpenType y WOFF, no se considera el tipo MIME del archivo especificado". developer.mozilla.org/en/css/@font-face . No invente nuevos tipos mime de nivel superior, use x- en su lugar: tools.ietf.org/html/rfc2045#section-5 - djsadinoff Hace 3 minutos edit
djsadinoff
@djsadinoff Creo que IANA reemplaza al IETF. IETF envía borradores a IANA , y dado que IANA informa que woff es un tipo MIME, IETF se anula en su listado limitado.
Mike Kormendy
@MikeKormendy, no entiendo tu comentario, pero es posible que te hayas referido a una versión anterior de mi respuesta que solo se refiere a WOFF. He restaurado el original
djsadinoff
@djsadinoff Eso es extraño, stack exchange dijo que habías comentado sobre eso "hace 3 minutos".
Mike Kormendy
85

Desde febrero de 2017, RFC 8081 agrupa todos los tipos MIME para fuentes bajo el fonttipo de medio de nivel superior . Los tipos MIME más antiguos de mi publicación original ahora se enumeran como obsoletos.

Los tipos de fuente enumerados por IANA ahora son:

Otros formatos de fuente no estándar quedan como son:


[Publicación original desactualizada]

Como todavía hay mucha confusión en la web sobre los tipos MIME para las fuentes web, pensé en dar una respuesta actual, completa con fechas efectivas y enlaces de apoyo a IANA y el W3C.

Estos son los tipos MIME oficiales para fuentes web:

Tenga en cuenta que hay un movimiento para cambiar todo lo anterior a tipos MIME de font/XXX , como lo respalda el W3C en su propuesta para WOFF v2. Esto está siendo rastreado por el Grupo de trabajo de ingeniería de Internet (IETF) bajo el tipo de fuente de nivel superior y en febrero de 2017 se aprobó el estado RFC (ver RFC 8081 ), ¡así que todo puede cambiar todavía!

Mientras que en el tema de los servidores web, vale la pena mencionar que las respuestas HTTP pueden gzip (o de lo contrario comprimir) todos los formatos de fuente anteriores excepto .woff&.woff2 los que ya están muy comprimidos.

Digo más en Tipos MIME para fuentes web con (Fantom) BedSheet .

Steve Eynon
fuente
2
Las publicaciones duplicadas se detectan automáticamente en SO y corre el riesgo de que se eliminen ambas publicaciones. Si tiene información útil para publicar, entonces debería considerar preguntar y responder su propia pregunta.
Borodin
Ack! He sido atrapado! Sí, estaba siendo flojo. : / He actualizado la otra respuesta para que sea más relevante para su pregunta relacionada. Sin embargo, creo que sigue siendo una buena opción para esta página.
Steve Eynon
Hay una gran cantidad de respuestas cuestionables para evaluar. Trato de hacer un comentario sobre los que marco, pero lo más común es que sus respuestas simplemente desaparezcan. Por favor, trate de seguir siendo actual.
Borodin
@SteveEynon: Opera basado en Presto no renderiza ꜱᴠɢ fuentes servidas con un tipo de imagen mime.
user2284570
12

Como una instancia específica de una de las dos cosas difíciles de la informática, es interesante ver cómo las respuestas a esta pregunta han cambiado desde que se publicó originalmente. Afortunadamente, los poderes fácticos han dado orden al caos:


En febrero de este año (2017), el W3C publicó el Standard Track RFC 8081: El tipo de medio de nivel superior de "fuente" que simplifica enormemente los tipos de medios apropiados para los archivos de fuente:

Este memo sirve para registrar y documentar el tipo de medio de nivel superior de "fuente", bajo el cual se pueden registrar subtipos para formatos de representación para fuentes. Este documento también sirve como una solicitud de registro para un conjunto de subtipos previstos, que son representativos de algunos subtipos existentes que ya están en uso, y que actualmente están registrados bajo el árbol de "aplicación" por sus registros separados.

Es un documento bastante legible y describe el contexto histórico (falta de "un registro de formatos para fuente" ) que dio lugar a la confusa combinación de tipos y subtipos de medios. Con el aumento (relativamente) reciente de la popularidad de las fuentes web descargables, el W3C reconoció la necesidad de un "tipo de fuente intuitiva de nivel superior" . Lo que se les ocurrió es ...font .

En consecuencia, la IANA ha actualizado desde entonces su lista oficial de tipos de medios con el fonttipo de medios y todos sus subtipos que actualmente reconocen:

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

Espero que esta sea la última respuesta que esta pregunta necesita.

Anthony Geoghegan
fuente
2
Anthony, este es otro gran recurso además de mi publicación. ¡Gracias por compartir esto aquí!
Mike Kormendy
7

Aquí está la solución NGINX

expediente

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

añadir

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

eliminar

application/octet-stream        eot;

Gracias a Mike Fulcher

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

BG Bruno
fuente
6

FWIW con respecto a Apache 2.2 VirtualHosting y mod_mime probados en Debian Linux y OS X Leopard y Snow Leopard:

Si tiene una configuración VirtualHost, querrá agregar los tipos a través de la Directiva AddType de la siguiente manera, al menos en la parte inferior de la configuración de la siguiente manera:

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

Probado contra Chrome Unstable / Trunk y Safari WebKit Nightly, que elimina las advertencias mime octet-stream para los tipos de fuente ttf y otf.

Nota: .htaccess tiene cero efecto cuando se trata de VirtualHosting. Si está desarrollando para varios sitios, utilizará el desarrollo VirtualHosting y cada configuración necesitará estas adiciones de AddType.

Marc J. Driftmeyer
fuente
6

Acabo de investigar un poco sobre la lista oficial de IANA . Creo que la respuesta dada aquí 'font / xxx' es incorrecta ya que no hay ningún tipo de 'fuente' en el estándar MIME.

Según las RFC y la IANA, este parece ser el estado actual de la jugada a mayo de 2013:

Estos tres son oficiales y asignados por IANA:

  • svg como "image / svg + xml"
  • woff como "aplicación / font-woff"
  • eot como "application / vnd.ms-fontobject"

Estos no son oficiales / asignados, por lo que deben usar la sintaxis 'x-':

  • ttf como "aplicación / x-font-ttf"
  • otf como "application / x-font-opentype"

La aplicación / font-woff parece nueva y tal vez solo oficial desde enero de 2013. Por lo tanto, "application / x-font-woff" podría ser más seguro / más compatible a corto plazo.

Aaron
fuente
5

A partir de marzo de 2013, IANA.ORG recomienda para .otf :
application/font-sfnt

Otras fuentes:

.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)

Ver más ...

Sarga
fuente
2

Lo siguiente se puede utilizar en el espacio del libro electrónico:

application/vnd.ms-opentype

Me imagino que es lo mismo para la web.

Arktype
fuente
2

A partir de febrero de 2017, RFC 8081 agrega tipos de medios de fuente / *, que también figuran en la lista de Tipos de medios de IANA . font/otfestá en esta lista

George Helyar
fuente
1

Quizás esto ayude a alguien. Vi que en IIS 7 .ttfya es un tipo mime conocido. Está configurado como:

application/octet-stream

Así que me acaba de agregar que para todos los tipos de fuentes CSS ( .oet, .svg, .ttf,.woff ) e IIS empezaron a servir ellos. Las herramientas de desarrollo de Chrome tampoco se quejan de reinterpretar el tipo.

Saludos, Michael

Michael Kennedy
fuente
1
application/octet-streames menos un "tipo conocido" y más un "grupo genérico de bytes". :) El navegador se queja de que se le sirve este tipo, porque no contiene información sobre cómo deben interpretarse las cosas.
cHao
-1

Una forma de silenciar esta advertencia de Chrome sería actualizar Chrome y luego asegurarse de que su tipo mime sea uno de estos:

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

Esta lista corresponde al parche encontrado en el error 111418 en webkit.org .

El mismo parche degrada el mensaje de "Advertencia" a "Registro", por lo que solo actualizar Chrome a cualquier versión posterior a marzo de 2013 eliminaría el triángulo amarillo.

Dado que la pregunta es sobre silenciar una advertencia de Chrome, y la gente podría estar aferrándose a versiones antiguas de Chrome por cualquier motivo, pensé que valía la pena agregarlo.

hombre espacio cardiff
fuente