【问题标题】:Browsers are not requesting font file浏览器不请求字体文件
【发布时间】:2013-11-22 15:24:05
【问题描述】:

我在 font-awesome 方面遇到了一个非常奇怪的问题。

长话短说:浏览器忽略了@font-face 的“src”部分,并且没有对实际字体提出任何请求。

//font-awesome.css excerpt

@font-face {
    font-family: 'FontAwesome';
    src: url('/Content/fonts/fontawesome-webfont.eot?v=4.0.3');
    src: url('/Content/fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('/Content/fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('/Content/fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('/Content/fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');
    font-weight: normal;
    font-style: normal;
}
  • 所有软件和库都是最新的稳定版本。
  • 控制台中没有错误。
  • 字体文件在直接请求时完全可以下载
  • 在 Chrome、FireFox 和 IE 中测试
  • 我的另一个项目使用以前主要版本的 bootstrap 和 font-awesome 运行良好

http://jsfiddle.net/c2zUh

【问题讨论】:

  • 在这种情况下,一个活生生的例子会很棒
  • 网络选项卡上是否有请求,有时当我的 CSS 中的路径相对于该 css 文件的位置不正确时,我会遇到这类问题,通常我会得到 404在网络标签上
  • @OJay 这就是问题所在。没有请求,没有错误,什么都没有。好像 src 根本不存在。
  • 糟糕,抱歉,当时我还想着 Rails。我现在要提交一个潜在的解决方案,请告诉我进展如何。
  • 很有趣。我下载了你的代码。我从 CSS 中删除了除 @font-face 之外的所有内容,加载了页面,没有请求。添加body{font-family:'FontAwesome';},并重新加载页面,然后是一个请求。如果您使用具有该字体的样式看起来无用,则不会下载它。现在在您的 HTML 中,没有类(我假设一切都通过类完成,因为这是常态)直接使用字体。您需要包含基类,然后包含图标,即

标签: css twitter-bootstrap fonts font-face font-awesome


【解决方案1】:

您的 HTML 没有引用图标的基类(设置字体)。您需要包含基类,然后包含图标,即

<span class="glyphicon glyphicon-asterisk"></span> 

不是

<span class="glyphicon-asterisk"></span>

<i class="fa fa-group"></i>

不是

<i class="fa-group"></i>

你还需要 glyphicon 和 fa 类

并且作为注释,如果您不使用实际应用于元素的样式规则(@font-face 不计算在内)中的字体,则不会请求它。因此,除非元素具有 glyphicon 或 fa 类,否则不会下载相关的字体文件。我必须承认,这对我来说是个新闻。

【讨论】:

  • 谢谢!这太愚蠢了,我开始拔头发了
  • 你也让我难过一阵子
  • 这不是引导库的规范(我自己目前正在使用它)(甚至是 jQuery UI 库,他们使用 ui-icon),根据参考,你需要两者。但是没有什么能阻止某人为每个 glyphicon-* 设置一个规则为字体系列:'Glyphicons',它很简单
【解决方案2】:

您也可以尝试以 woff 格式嵌入字体 - 就在 base64 的 .css 文件中。 它在所有浏览器和 IE 9+ 中都能完美运行

另外,可能是这种情况,你的系统中已经安装了这个字体,这会阻止下载......

【讨论】:

  • 嵌入肯定可以工作。使用现有/缓存的字体是个好主意。但是当我将 css 中的字体重命名为新字体时 - 仍然没有来自浏览器的请求。
【解决方案3】:

尝试在 IIS 中打开您的站点,然后转到“属性”>“HTTP 标头”>“MIME 类型”。为以下各项添加一个新的 MIME 类型:

扩展名:.otf

MIME 类型:字体/otf

-

扩展名:.svg

MIME 类型:图片/svg+xml

-

扩展名:.woff

MIME 类型:application/x-font-woff

让我知道这是否会产生盲目的影响!

【讨论】:

  • man... 再次 - 当直接请求时,字体文件完全可以下载。我已配置所有 MIME 类型。再次 - 浏览器没有发出请求,它甚至没有机会因 MIME 类型配置错误而失败。
  • 好吧,对不起,我帮不上忙。
  • 其实,如果你有本地字体文件,这也是必须的。如果你没有在 IIS 中设置 MIME 类型,即使文件存在,它们服务器也会返回 404。
猜你喜欢
  • 2022-01-23
  • 1970-01-01
  • 2020-05-15
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 2016-01-11
  • 2017-11-29
  • 1970-01-01
相关资源
最近更新 更多