2017-04-05 69 views
0

我打电话给我的字体像这样:404错误,当IE加载字体

@font-face { 
    font-family: 'dinar'; 
    src: url('../fonts/dinarm.eot?#'), 
     local('?'), 
     local('Mj_Dinar Two Medium'), 
     url('../fonts/dinarm.woff') format('woff'), 
     url('../fonts/dinarm.ttf') format('truetype'), 
     url('../fonts/dinarm.svg') format('svg'); 
    font-weight: normal; 
    font-style: normal 
} 
@font-face { 
    font-family: 'font-bmi'; 
    src: url('../fonts/font-bmi/font-bmi.eot'); 
    src: url('../fonts/font-bmi/font-bmi.eot') format('eot'), 
     url('../fonts/font-bmi/font-bmi.woff') format('woff'), 
     url('../fonts/font-bmi/font-bmi.ttf') format('truetype'); 
    font-weight: normal; 
    font-style: normal 
} 

每次使用Internet Explorer一些用户尝试,我看到很多404错误的虚拟主机使用日志访问该网站,最终用户被我的安全插件禁止。有使用日志的例子:

80.00.000.146 - - [05/Apr/2017:00:46:10 +0430] 
"GET /wp-content/themes/fonts/font-bmi/font-bmi.eot)%20format(%22eot%22), 
%20url(../fonts/font-bmi/font-bmi.woff)%20format(%22woff%22), 
%20url(../fonts/font-bmi/font-bmi.ttf)%20format(%22truetype%22 HTTP/1.1" 404 4058 
"http://www.21tech.ir/some-page/" "Mozilla/4.0 
(compatible; MSIE 8.0; Windows NT 5.1; --some other information--)" 

我知道它写Mozilla/4.0但它实际上IE浏览器我测试过它。

什么问题,以及如何解决或避免?

+0

的路径应该是相对的CSS文件本身,而不是从调用CSS页面。这是正确的道路吗? – iguypouf

+0

@iguypouf是的,它只是发生在IE浏览器。 – ata

回答

1

原因是IE的旧版本无法正确解释第二个@font-face声明中的第二个src属性。 (?)的解决方案,称为Fontspring @font-face syntax是一个问号追加到该属性的.eot URL的末尾,欺骗IE以为随后的一切是一个查询字符串:

@font-face { 
    font-family:"font-bmi"; 
    src:url("../fonts/font-bmi/font-bmi.eot?#iefix") format("embedded-opentype"), 
     url("../fonts/font-bmi/font-bmi.woff2") format("woff2"), 
     url("../fonts/font-bmi/font-bmi.woff") format("woff"), 
     url("../fonts/font-bmi/font-bmi.ttf") format("truetype"); 
    font-weight:normal; 
    font-style:normal 
} 

你已经试过一些不同的“黑客”可以在你的第一个@font-face声明中解决这个问题,但是,尽管你已经成功地设法阻止IE报告404s,但上述解决方案更加清晰并且不会影响CSS的可读性。

如要进一步了解,请参阅保罗爱尔兰的“Bulletproof @font-face syntax”的文章从2009年

+0

其实我看到我的每一个字体的错误,第一个不好,我只是粘贴部分错误。我尝试了你的建议,但没有成功。 – ata

+0

你的答案的第一个链接,做了这份工作。谢谢。 – ata

+0

你必须做出什么改变,它与我的解决方案有什么不同? – Shaggy