1

我有webfonts.fonts.com@font-face提供给我的以下代码。

@font-face {
  font-family: "Arial W01 Regular";
  src: url("https://example.com/fonts/6efc8731-df51-47d4-94f6-d20bbfa83f13.eot?iefix");
  src: url("https://example.com/fonts/34904d9f-aa74-4e54-96b2-c893c64d4649.woff") format("woff"), url("https://example.com/fonts/4c8849d4-261c-445a-b013-663d9b3e42c6.ttf") format("truetype"), url("https://example.com/fonts/821da903-3a46-4ec9-a459-afb6776bee53.svg#821da903-3a46-4ec9-a459-afb6776bee53") format("svg"); }

它似乎在所有浏览器上都可以正常工作,但我从 IE 客户端(IE6、IE7 和 IE8)收到了非常奇怪的 404。他们似乎没有正确选择一种网络字体,而是将整个 CSS 指令连接成一个字符串并请求整个内容:

xxx.xxx.xxx.xxx example.com - [16/Nov/2011:09:23:30 -0500] "GET /fonts/4c81d16c-907a-43df-8e68-27da8939ce09.woff%22)%20format(%22woff%22),%20url(%22https://example.com/fonts/84ee8818-41db-4b62-8639-d3cfbf2751e8.ttf%22)%20format(%22truetype%22),%20url(%22https://example.com/fonts/d25a458a-cbcf-47ab-a30d-977747bbea34.svg HTTP/1.1" 404 2720 "https://example.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB7.1; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; MSN 9.0;MSN 9.1;MSN 9.6;MSN 10.0;MSN 10.2; MSNbVZ02; MSNmen-us; MSNcOTH)"

奇怪的是,IE 仍然可以看到 webfonts,所以它不会影响客户端功能,只是弄脏了我的错误日志。我该如何解决这个问题,还是应该忽略它?

4

1 回答 1

3

不幸的是,Internet Explorer 就是这样做的。唯一已知的解决方法是在字体后简单地应用一个哈希 (#),并且不再查看您的日志文件。

@font-face {
  font-family: "Arial W01 Regular";
  src: url("https://example.com/fonts/...eot#");
  ...
}

有关该主题的有趣讨论,请参阅 Jake Archibald 在 2011 年 DIBI 会议上的演讲, Font-Face - Good vs Legal

于 2011-11-16T14:41:45.837 回答