Correct Apache AddType directives for font MIME types
I’m using @font-face for embedded fonts (thanks Paul Irish). In trying to fix Chrome’s warning about wrong MIME type for woff fonts, I’ve discovered a mass of conflicting suggestions.
Everyone seems to agree that .eot fonts (for IE 6-8?) should be served using
AddType application/vnd.ms-fontobject .eot
For .ttf fonts (older non-IE browsers?) I’ve seen
AddType application/x-font-ttf .ttf
AddType application/octet-stream .ttf
AddType font/truetype .ttf
AddType font/ttf .ttf
And for .woff fonts (the new standard?) I’ve seen
AddType application/font-wof .woff
AddType application/x-font-woff .woff
AddType application/x-woff .woff
I understand the correct MIME type for woff will be application/font-woff, but until the standard is official, application/x-font-woff is understood by Chrome.
I realise I’ve half answered my question in asking it, but the question is really: is there any authoritative guidance or further advice about what MIME types should be used for fonts?
Update (in case it’s of any help to anyone else): since there seems to be nothing authoritative, I’ve settled on using the following font MIME types in my .htaccess (which at least keeps Chrome happy):
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-woff .woff
I realize that this question is old, but for anyone looking for a quick copy/paste for adding font MIME types to their .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>
I just did some research on IANA official list. This appears to be the current state of the play as at May 2013:
These three are official and assigned by IANA:
- svg as "image/svg+xml"
- woff as "application/font-woff"
- eot as "application/vnd.ms-fontobject"
These are not not official/assigned, and so must use the 'x-' syntax:
- ttf as "application/x-font-ttf"
- otf as "application/x-font-opentype"
It appears that the 'font' type does not exist, so any time type you see 'font/xxx' it is bogus. Possibly 'x-font/xxx' would be allowable, not sure. IIS8 ships with a couple entries like this. Not sure if MS thinks these 'font/xxx' ones are needed for compatibility, or if they just don't read RFCs :-)
The application/font-woff appears new and maybe only official since Jan 2013. So "application/x-font-woff" might be safer/more compatible in the short term.