什么mime类型应该作为WOFF字体?
我服务truetype(ttf)字体as font/truetype和opentype(otf)as font/opentype,但我找不到WOFF字体的正确格式.
我曾尝试font/woff,font/webopen和font/webopentype,但Chrome仍然会抱怨:
"资源被解释为字体,但使用MIME类型application/octet-stream进行传输."
有人知道吗?
所以我正在尝试原型化营销页面,我正在使用Bootstrap和新的Font Awesome文件.问题是,当我尝试使用图标时,在页面上呈现的所有内容都是一个大方块.
这是我在头部包含文件的方式:
<head>
<title>Page Title</title>
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/bootstrap-responsive.css">
<link rel="stylesheet" href="css/font-awesome.css">
<link rel="stylesheet" href="css/app.css">
<!--[if IE 7]>
<link rel="stylesheet" href="css/font-awesome-ie7.min.css">
<![endif]-->
</head>
Run Code Online (Sandbox Code Playgroud)
以下是我尝试使用图标的示例:
<i class="icon-camera-retro"></i>
Run Code Online (Sandbox Code Playgroud)
但所有这一切都在一个大广场上呈现.有谁知道会发生什么?
使用ASP.NET MVC 5的默认安装和更新的Bootstrap 3,加载项目的主页不会显示CSS样式或包含的字体glyphicons(找不到404文件错误).
CSS样式在/ Content/css地址中获得403"禁止查看文件夹内容"错误.
字体在/ fonts文件夹中出现404错误.
为什么?
当我将我的应用程序放在IIS7服务器上时,FontAwesome对我不起作用.
在Firefox中,请求的URL被编码为http://l2etest.kema.intra/fonts/fontawesome-webfont.ttf%3Fv=4.0.3,我得到404.当我%3F改为?一切正常.
在IE中也发生了同样的事情,但请求转到了eot字体.
这就是我在CSS中所拥有的(与FontAwesome页面相同):
@font-face {
font-family: 'FontAwesome';
src: url('../fonts/fontawesome-webfont.eot?');
src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
Run Code Online (Sandbox Code Playgroud)
我认为问题是IIS编码URL而不是请求../fonts/fontawesome-webfont.eot?请求../fonts/fontawesome-webfont.eot%3F.
请不要建议删除'?' 或来自网址的"#".他们是有目的的,是必不可少的.问题是如何使IIS不以这种方式编码URL.任何线索将不胜感激.
编辑:顺便说一句.上面的情况发生在web.config中我设置requestValidationMode和requestPathInvalidCharacters:
<httpRuntime shutdownTimeout="360" maxRequestLength="102400" enable="true" requestValidationMode="2.0" requestPathInvalidCharacters="" />
Run Code Online (Sandbox Code Playgroud)
没有它我得到400(错误的请求): 从客户端检测到一个潜在危险的Request.Path值(?)
如何修复IIS以正确提供字体?
编辑2: 好的,我找到了问题的原因.用于MVC3的SquishIt捆绑工具正在改变这些角色.当我从bundle中排除font-awesome.css时,一切正常.
这是一个非常令人沮丧的错误!
我正在使用Font Awesome(本地托管)和其他一些字体,它们间歇性地无法加载 - 不是 404ing,只是完全无法出现在开发人员工具的“网络”选项卡中,并且没有呈现在页面上。
第一次加载页面时似乎最常发生 - 刷新字体然后加载/渲染确定。但是,清除浏览器缓存并不能可靠地重现该问题。
我知道路径没问题,因为大约 80% 的时间字体渲染正常。这是一个间歇性的问题。我在 OSX 上使用 Chrome v26。
我的 CSS 看起来像这样:
<head>
...
<link rel="stylesheet" type="text/css" href="${context}/resources/font/opensans.css" />
<link rel="stylesheet" type="text/css" href="${context}/resources/css/font-awesome.min.css" />
...
Run Code Online (Sandbox Code Playgroud)
CSS 文件如下所示:
@font-face {
font-family: 'open_sanslight';
src: url('opensans-light-webfont.eot');
src: url('opensans-light-webfont.eot?#iefix') format('embedded-opentype'),
url('opensans-light-webfont.woff') format('woff'),
url('opensans-light-webfont.ttf') format('truetype'),
url('opensans-light-webfont.svg#open_sanslight') format('svg');
font-weight: normal;
font-style: normal;
Run Code Online (Sandbox Code Playgroud)
}
再次,路径是正确的(字体在大约 80% 的情况下渲染正确这一事实证明了这一点)。
可能发生了什么?