MIMEtypes的WOFF字体?
什么MIMEtypes应该作为WOFF字体?
我正在提供truetype(ttf)字体作为font/truetype
和opentype(otf)作为font/opentype
opentype,但我无法find正确的格式为WOFF字体。
我曾尝试过font/woff
, font/webopen
和font/webopentype
,但Chrome仍然抱怨:
“资源解释为字体,但用MIMEtypes应用程序/八位字节stream传输”。
有人知道吗?
Keith Shaw在2017年6月22日发表的评论 :
截至2017年2月, RFC8081是提议的标准。 它为字体定义了顶级媒体types,因此WOFF和WOFF2的标准媒体types如下:
font/woff
font/woff2
在2011年1月,有消息称Chromium将会承认
application/x-font-woff
作为WOFF的哑剧式。 我知道这个变化现在已经在Chrome beta版本中,如果不是稳定的话,它应该不会太远。
对我来说,下一个是在.htaccess文件中工作。
AddType font/ttf .ttf AddType font/eot .eot AddType font/otf .otf AddType font/woff .woff
这将是application/font-woff
。
请参阅http://www.w3.org/TR/WOFF/#appendix-b(W3C候选推荐标准2011年8月4日);
和http://www.w3.org/2002/06/registering-mediatype.html
来自Mozilla的css font-face笔记
在Gecko中,除非使用HTTP访问控制来放宽这个限制,否则Web字体受到相同的域限制(字体文件必须与使用它们的页面在同一个域上)。 注意:由于TrueType,OpenType和WOFF字体没有定义的MIMEtypes,因此不考虑指定文件的MIMEtypes。
来源: https : //developer.mozilla.org/en/CSS/@font-face#Notes
NGINX解决scheme
文件
/etc/nginx/mime.types
要么
/usr/local/nginx/conf/mime.types
加
font/ttf ttf; font/opentype otf; application/font-woff woff; application/vnd.ms-fontobject eot;
去掉
application/octet-stream eot;
参考
感谢Mike Fulcher
将字体MIMEtypes添加到.NET / IIS的参考
通过web.config
<system.webServer> <staticContent> <!-- remove first in case they are defined in IIS already, which would cause a runtime error --> <remove fileExtension=".woff" /> <remove fileExtension=".woff2" /> <mimeMap fileExtension=".woff" mimeType="application/font-woff" /> <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" /> </staticContent> </system.webServer>
通过IISpipe理器
没有font
MIMEtypes! 因此, font/xxx
始终是错误的。
@尼科 ,
目前没有为woff字体MIMEtypes定义的标准。 我使用字体传递cdn服务,它使用font / woff,我在chrome中得到相同的警告。
参考: 互联网号码分配机构
这对我来说是把这个添加到我的mime_types.rb初始值设定项中:
Rack::Mime::MIME_TYPES['.woff'] = 'application/x-font-woff'
并清除caching
rake tmp:cache:clear
在重新启动服务器之前。
资料来源: https : //github.com/sstephenson/sprockets/issues/366#issuecomment-9085509
截至2017年2月, RFC8081是提议的标准。 它为字体定义了顶级媒体types,因此WOFF和WOFF2的标准媒体types如下:
font/woff font/woff2
WOFF:
- Web打开字体格式
- 它可以用TrueType或PostScript(CFF)轮廓进行编译
- 它目前由FireFox 3.6+支持
尝试添加:
AddType application/vnd.ms-fontobject .eot AddType application/octet-stream .otf .ttf
也许这会帮助别人。 我看到在IIS 7上.ttf
已经是一个已知的MIMEtypes。 它被configuration为:
application/octet-stream
所以我只是补充说,所有的CSS字体types( .oet
, .svg
, .ttf
, .woff
)和IIS都开始为它们服务。 Chrome开发工具也不会抱怨重新解释types。
干杯,迈克尔
将以下内容添加到.htaccess中
AddType application/x-font-woff woff
祝你好运
IIS自动定义.ttf作为应用程序/八位字节stream似乎工作正常和fontshopbuild议.woff被定义为application / octet-stream
我刚才也遇到了同样的问题,这是对我有用的解决scheme:
font/opentype
我有同样的问题, 字体/ opentype为我工作
MIMEtypes可能不是你唯一的问题。 如果字体文件托pipe在S3或其他域上,则可能还存在Firefox不会加载来自不同域的字体的问题。 对于Apache来说这是一个简单的修复,但是在Nginx中,我已经读过,你可能需要用base-64编码你的字体文件,并将它们直接embedded到你的字体CSS文件中。
对于所有解决schemeindex.php删除表单url和woff文件允许。 在.htaccess文件中写下面的代码,然后把这个文件交给你的application / config / config.php文件:$ config ['index_page'] ='';
仅适用于Linux托pipe服务器。 .htaccess文件的详细信息
AddType font/ttf .ttf AddType font/eot .eot AddType font/otf .otf AddType font/woff .woff <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / #Removes access to the system folder by users. #Additionally this will allow you to create a System.php controller, #previously this would not have been possible. #'system' can be replaced if you have renamed your system folder. RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] #When your application folder isn't in the system folder #This snippet prevents user access to the application folder #Submitted by: Fabdrol #Rename 'application' to your applications folder name. RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] #Checks to see if the user is attempting to access a valid file, #such as an image or css document, if this isn't true it sends the #request to index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> <IfModule !mod_rewrite.c> # If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin ErrorDocument 404 /index.php </IfModule>