Tipo MIME adequado para fontes

249

Pesquisando na Web, encontro várias sugestões diferentes de qual é o tipo MIME adequado para uma fonte, mas ainda não tentei qualquer tipo MIME que me livre de um aviso do Chrome, como o seguinte:

Recurso interpretado como fonte, mas transferido com tipo de fonte MIME / otf

A fonte é um OTF.

Eu tentei os seguintes tipos MIME até agora

  • font / otf
  • application / font-otf
  • aplicação / fonte
  • application / otf
  • application / octet-stream
  • application / x-font-otf
  • application / x-font-TrueType (eu sei que não é truetype, mas uma fonte citou isso para OTF)
David Hedlund
fonte
3
Como você realmente escreve o cabeçalho para isso? Não tenho muita certeza do que fazer. Felicidades por qualquer ajuda que você possa dar.
21410 Josh Smith #
1
@ Josh: se você estiver servindo a fonte por meio de código, deseja definir o cabeçalho "content-type" como "font / opentype" (se você estiver usando um OTF como na minha pergunta), mas se estiver simplesmente apontando para um arquivo de fonte físico, pode ser mais fácil definir os tipos MIME no servidor da web. Não sei qual servidor da Web você está usando, então faça uma pesquisa no Google por tipos de servidor + mime ou inicie uma nova pergunta no SO descrevendo seu problema.
precisa
2
O título está errado. Deveria ser o aviso "Como silenciar o recurso" interpretado como fonte "no Chrome
#
2
@djs: concedido! Você sabe, se eu pudesse encontrar uma maneira de fazer o Chrome lembrar que eu quero que meu console liste mensagens e erros de log, mas não avisos, há uma boa chance de eu nunca ter feito essa pergunta em primeiro lugar.
David Hedlund
O Chrome nos avisa que está fazendo o que pedimos. Prefiro ver um aviso quando descobrir com êxito os bitmaps a serem usados ​​para glifos se você usar @ font-face com um arquivo .BMP!
homem do espaço Cardiff

Respostas:

137

Tente usar "font / opentype".

spd
fonte
51
Este é um tipo de mimet ilegal: no entanto, não há "font /" nos tipos oficiais de mimet. Um tipo mime melhor seria "application / x-font-opentype" ou "application / octet-stream". O primeiro é basicamente "mimetype não registradas com este nome", o segundo apenas "dados binários"
DTECH
Não funciona para mim no Chrome 16. Um que funcionou foi: application / vnd.oasis.opendocument.formula-template.
Jayarjo
16
Parece que o atual vencedor é: application / x-font-woff - espero que ajude!
busticated
7
@busticated este foi alterado para application / font-woff ver w3.org/TR/WOFF/#appendix-b
Holger
210

Há vários formatos de fonte para os quais é possível definir tipos MIME, nos servidores Apache e IIS. Tradicionalmente, tive sorte com o seguinte:

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 acordo com a Força-Tarefa de Engenharia da Internet, que mantém o documento inicial sobre Extensões de E-mail Multipurpose Internet (tipos MIME) aqui: http://tools.ietf.org/html/rfc2045#section-5 ... diz em detalhes:

" Espera-se que acréscimos ao conjunto maior de tipos suportados geralmente possam ser obtidos com a criação de novos subtipos desses tipos iniciais. No futuro, mais tipos de nível superior poderão ser definidos apenas por uma extensão de padrão para esse padrão Se outro tipo de nível superior for utilizado por qualquer motivo, deve ser atribuído um nome que comece com "X-" para indicar seu status fora do padrão e evitar um possível conflito com um futuro nome oficial " .

Por assim dizer, e com o tempo, tipos MIME adicionais são adicionados à medida que os padrões são criados e aceitos; portanto, vemos exemplos de tipos MIME específicos do fornecedor, como vnd.ms-fontobject e similares.

ATUALIZAÇÃO 16 de agosto de 2013: O WOFF foi formalmente registrado na IANA em 3 de janeiro de 2013 e o Webkit foi atualizado em 5 de março de 2013. Os navegadores que estão fornecendo esta atualização em suas versões mais recentes começarão a emitir avisos sobre os tipos MIME do servidor com os antigos declaração x-font-woff. Como os avisos são apenas irritantes, eu recomendaria mudar imediatamente para o tipo MIME aprovado. Em um mundo ideal, os avisos se resolverão a tempo.

ATUALIZAÇÃO 26 de fevereiro de 2015: O WOFF2 agora está no rascunho do editor do W3C com o tipo de mímica proposto. Provavelmente deve ser enviado à IANA no próximo ano (possivelmente até o final de 2016), seguindo cronogramas de progresso mais recentes. Assim como o SFNT, o formato de fonte do contêiner escalável / spline usado na referência da tabela de backbone do Google Web Fonts com sua biblioteca java sfntly e já está registrado como um tipo mime na IANA e pode ser adicionado a essa lista, dependendo da necessidade individual.

ATUALIZAÇÃO 4 de outubro de 2017: Podemos acompanhar a progressão do formato WOFF2 aqui com a maioria dos navegadores modernos que suportam o formato com êxito. Além disso, podemos acompanhar a solicitação de tipo de mídia de nível superior da "fonte" da IETF para rastreador de comentários (RFC) e o documento referente ao conjunto mais recente de tipos de fonte propostos para aprovação.


Para aqueles que desejam incorporar o tipo de letra na ordem correta em seu CSS, visite este artigo . Mais uma vez, tive sorte com a seguinte ordem:

@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 propriedades automáticas do Subversion, elas podem ser listadas 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
fonte
Bons, obrigado. Recebi mensagens de erro com .woff e isso foi corrigido no meu arquivo .htaccess. Eu useiAddType application/x-font-woff
Danny Englander
application / x-font-OpenType e trabalho application / x-font-ttf perfeitamente para Linux Gnome Shell
Schmoove
1
O ttf, otf e woff2 estão desatualizados. Veja stackoverflow.com/a/20723357/1356047
Jonas Berlin
126

Ignore o aviso de cromo. Não há tipo MIME padrão para fontes OTF.

font / opentype pode silenciar o aviso, mas isso não faz com que seja a coisa "certa" a ser feita.

Indiscutivelmente, é melhor inventar uma, por exemplo, com "application / x-opentype", porque pelo menos "application" é um tipo de conteúdo registrado, enquanto "font" não é.

Atualização: OTF continua sendo um problema, mas o WOFF criou um tipo de aplicativo / fonte-woff da IANA MIME em janeiro de 2013.

Atualização 2: OTF aumentou um tipo MIME: application / font-sfnt Em março de 2013. Esse tipo também se aplica ao .ttf

djsadinoff
fonte
2
Interessante. Você tem alguma referência que apóie isso?
Kzqai
18
Não há tipo MIME: "Observação: como não há tipos MIME definidos para fontes TrueType, OpenType e WOFF, o tipo MIME do arquivo especificado não é considerado." developer.mozilla.org/en/css/@font-face . Não invente novos de nível superior tipos MIME, use X em vez disso: tools.ietf.org/html/rfc2045#section-5 - djsadinoff 3 minutos atrás Editar
djsadinoff
@djsadinoff Eu acredito que a IANA substitui a IETF. A IETF envia rascunhos à IANA e, como a IANA relata que o woff é do tipo MIME, a IETF é substituída em sua listagem limitada.
Mike Kormendy
@ MikeKormendy, eu não entendo seu comentário, mas você pode estar se referindo a uma versão anterior da minha resposta que aborda apenas o WOFF. Eu restaurei o original
djsadinoff
@djsadinoff Isso é estranho, a troca de pilhas disse que você tinha acabado de comentar sobre "3 minutos atrás".
Mike Kormendy
85

Desde fevereiro de 2017, o RFC 8081 agrupa todos os tipos MIME de fontes no fonttipo de mídia de nível superior . Os tipos MIME mais antigos da minha postagem original agora estão listados como obsoletos.

Os tipos de fonte listados pela IANA agora são:

Outros formatos de fonte não padrão são deixados como são:


[Postagem original desatualizada]

Como ainda há muita confusão na web sobre os tipos MIME para fontes da web, pensei em fornecer uma resposta atual, completa com datas efetivas e links de suporte à IANA e ao W3C.

Aqui estão os tipos oficiais de MIME para fontes da Web:

Observe que há um movimento para alterar todos os itens acima para os tipos MIME font/XXX, conforme apoiado pelo W3C em sua proposta para o WOFF v2. Isso está sendo rastreado pela Internet Engineering Task Force (IETF) em O tipo de nível superior da fonte e, em fevereiro de 2017, foi aprovado o status RFC (consulte RFC 8081 ), para que tudo possa mudar ainda!

Ainda sobre o tópico de servidores da Web, vale ressaltar que as respostas HTTP podem gzip(ou comprimir) todos os formatos de fonte acima, exceto .woff& .woff2que já estão fortemente compactados.

Digo mais em Tipos MIME para fontes da Web com (Fantom) BedSheet .

Steve Eynon
fonte
2
As postagens duplicadas são detectadas automaticamente no SO e você corre o risco de excluir as duas postagens. Se você tiver informações úteis para publicar, considere fazer e responder sua própria pergunta.
Borodin
Ack! Eu fui pego! Sim, eu estava sendo preguiçoso. : / Atualizei a outra resposta para que seja mais relevante para a pergunta relacionada. Eu acredito que ainda é um bom ajuste para esta página.
precisa
Existe uma quantidade enorme de respostas questionáveis ​​a serem avaliadas. Tento fazer questão de comentar sobre as que anoto, mas geralmente as suas respostas desaparecem. Por favor, tente permanecer tópico.
Borodin
@SteveEynon: O Opera baseado em Presto não renderiza fontes servidas com um tipo de mímica de imagem.
user2284570
12

Como um exemplo específico de uma das duas coisas difíceis da computação, é interessante ver como as respostas a essa pergunta mudaram desde que ela foi postada originalmente. Felizmente, os poderes que trouxeram ordem ao caos:


Em fevereiro deste ano (2017), o W3C publicou o Standards Track RFC 8081: O tipo de mídia de nível superior "fonte" que simplifica bastante os tipos de mídia apropriados para arquivos de fonte:

Este memorando serve para registrar e documentar o tipo de mídia de nível superior "fonte", sob o qual os subtipos de formatos de representação de fontes podem ser registrados. Este documento também serve como um aplicativo de registro para um conjunto de subtipos pretendidos, que são representativos de alguns subtipos existentes já em uso e atualmente registrados na árvore "aplicativo" por seus registros separados.

É um documento bastante legível e descreve o contexto histórico (falta de "um registro de formatos para fontes" ) que deu origem à mistura confusa de tipos e subtipos de mídia. Com o aumento (relativamente) recente na popularidade de fontes da web para download, o W3C reconheceu a necessidade de um "tipo de fonte de nível superior intuitivo" . O que eles vieram com é ... font.

Consequentemente, a IANA atualizou sua lista oficial de tipos de mídia com o fonttipo de mídia e todos os seus subtipos que eles reconhecem atualmente:

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

Esperamos que esta seja a última resposta que esta pergunta precisa.

Anthony Geoghegan
fonte
2
Anthony, esse é outro ótimo recurso, além do meu post. Obrigado por compartilhar isso aqui!
Mike Kormendy
7

Aqui está a solução NGINX

Arquivo

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

adicionar

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

remover

application/octet-stream        eot;

Agradecimentos a Mike Fulcher

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

BG Bruno
fonte
6

FWIW sobre o Apache 2.2 VirtualHosting e mod_mime testado no Debian Linux e OS X Leopard e Snow Leopard:

Se você possui uma configuração do VirtualHost, convém adicionar os tipos por meio da Diretiva AddType da seguinte maneira, pelo menos na parte inferior da configuração, como segue:

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

Testado no Chrome Unstable / Trunk e Safari WebKit Nightly, que elimina os avisos mime octet-stream para os tipos de fonte ttf e otf.

Nota: .htaccess tem efeito zero ao lidar com o VirtualHosting. Se você estiver desenvolvendo para vários sites, estará usando o desenvolvimento do VirtualHosting e cada configuração precisará dessas adições AddType.

Marc J. Driftmeyer
fonte
6

Acabei de fazer uma pesquisa na lista oficial da IANA . Acredito que a resposta dada aqui 'font / xxx' esteja incorreta, pois não há nenhum tipo de 'fonte' no padrão MIME.

Com base nas RFCs e na IANA, este parece ser o estado atual da peça em maio de 2013:

Esses três são oficiais e designados pela IANA:

  • svg como "imagem / svg + xml"
  • woff como "application / font-woff"
  • eot como "application / vnd.ms-fontobject"

Eles não são oficiais / atribuídos e, portanto, devem usar a sintaxe 'x-':

  • ttf como "application / x-font-ttf"
  • otf como "application / x-font-opentype"

O application / font-woff parece novo e talvez apenas oficial desde janeiro de 2013. Portanto, "application / x-font-woff" pode ser mais seguro / compatível no curto prazo.

Aaron
fonte
5

A partir de março 2013 IANA.ORG recomenda para .otf :
application/font-sfnt

Outras fontes:

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

Sarja
fonte
2

O seguinte pode ser usado no espaço do e-book:

application/vnd.ms-opentype

Eu imaginaria que é o mesmo para a web.

Arktype
fonte
2

Desde fevereiro de 2017, o RFC 8081 adiciona tipos de fonte / * mídia, que também estão listados na lista Tipos de mídia da IANA . font/otfestá nesta lista.

George Helyar
fonte
1

Talvez isso ajude alguém. Vi que no IIS 7 .ttfjá é um tipo mime conhecido. Está configurado como:

application/octet-stream

Então, eu só acrescentou que, para todos os tipos de fonte CSS ( .oet, .svg, .ttf, .woff) e IIS começou a servi-los. As ferramentas de desenvolvimento do Chrome também não se queixam de reinterpretar o tipo.

Michael Cheers

Michael Kennedy
fonte
1
application/octet-streamé menos um "tipo conhecido" e mais um "grupo genérico de bytes". :) O navegador está reclamando de receber esse tipo de serviço, porque não carrega informações sobre como as coisas devem ser interpretadas.
Chao
-1

Uma maneira de silenciar esse aviso do Chrome seria atualizar o Chrome e garantir que o seu tipo MIME seja um deles:

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

Esta lista é de acordo com o patch encontrado no Bug 111418 em webkit.org .

O mesmo patch rebaixa a mensagem de um "Aviso" para um "Log", portanto, basta atualizar o Chrome para qualquer versão posterior a março de 2013 para se livrar do triângulo amarelo.

Como a pergunta é sobre silenciar um aviso do Chrome, e as pessoas podem estar segurando versões antigas do Chrome por qualquer motivo, achei que valeria a pena acrescentar.

homem do espaço de cardiff
fonte