FontAwesome无法在Firefox for Android上呈现

时间:2014-03-21 23:55:36

标签: android firefox font-awesome icon-fonts

enter image description here

请在Firefox for Android版本28上看到此页面的渲染(http://www.jungledragon.org/apps/jd3/all/recent)。问题立即可见:所有那些丑陋的块应该是来自图标字体'FontAwesome'的图标。

这是他们不呈现的唯一浏览器。问题出在我的设置中,因为如果我从Firefox for Android访问FontAwesome网站,那里的图标就可以了。另一个有用的线索是“JungleDragon”标志呈现得很好。这是来自Google的网络字体。

我一直试图排除这种失败的可能原因。特此尝试:

我曾经在我的Amazon S3帐户上托管FontAwesome的副本,并在那里设置CORS策略以允许跨源请求。为了确保这不是一个正在发挥作用的因素,我现在在同一个域上托管该字体。没有区别。

接下来,我从相对路径更改为字体到绝对路径。这也没什么区别。

该网站托管在Apache上,我在其中添加了以下内容类型:

AddType application/vnd.ms-fontobject    .eot
AddType application/x-font-opentype      .otf
AddType image/svg+xml                    .svg
AddType application/x-font-ttf           .ttf
AddType font/woff                        .woff

最后一行曾经不同,但我更改了它,以便它与Google字体的内容类型完全匹配,后者确实呈现。这也没什么区别。

在所有尝试中,我每次都完全清除缓存,因此也没有问题。

请注意,字体在其他Android浏览器(Chrome,Dolphin)以及我知道的所有桌面浏览器(包括Firefox)上都可以正常呈现。

这是我的字体声明:

@font-face {
  font-family: 'FontAwesome';
  src: url('http://www.jungledragon.org/apps/jd3/type/FontAwesome.eot'); 
  src: url('http://www.jungledragon.org/apps/jd3/type/FontAwesome.eot?#iefix') format('embedded-opentype'), url('http://www.jungledragon.org/apps/jd3/type/FontAwesome.woff') format('woff'), url('http://www.jungledragon.org/apps/jd3/type/FontAwesome.ttf') format('truetype'), url('http://www.jungledragon.org/apps/jd3/type/FontAwesome.svg#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}

这是加载FontAwesome的默认方式。我改变了许多变化(例如首先加载SVG),但都无济于事。

我现在完全失去了为什么我不能在Firefox for Android上渲染这种字体。

1 个答案:

答案 0 :(得分:0)

使用远程调试,我可以访问Firefox的设备Web控制台。事实证明Firefox正在抱怨CORS。这很奇怪,因为字体与页面托管在同一个域中。尽管如此,通过从PHP强制执行CORS标头,我能够解决问题。