Internet Explorer上的字体文件不会以https格式加载

时间:2014-06-16 14:34:38

标签: internet-explorer iis https font-face woff

我有一个非常讨厌的问题。我们的一位客户要求我们在他们使用font-face嵌入的网站上使用非标准字体。字体文件位于我们的服务器上,这在不使用https的情况下适用于所有Web浏览器。我一直在使用opentype字体用于IE的大多数浏览器和.woff文件。问题来自我们添加https,然后这些字体将不再加载到IE所有版本!它在所有其他网络浏览器中仍然可以正常工作,而不是IE!

页面使用IIS提供,因此所有与Apache服务器相关的答案都无关紧要。客户付费能够使用字体文件,但这并不妨碍他们被禁止上传到Font Squirrel,因此将它们编码为64格式也不是一个可行的解决方案。

我注意到加载字体时只会遇到问题。如果我关闭https,字体将加载,如果我重新打开https而不对我的浏览器进行硬刷新,页面仍会显示正确的字体,但如果我进行硬刷新,字体就会消失!

任何人都知道如何解决这个问题?

我还会在这里添加实际的css代码:

@font-face{
    font-family: 'FranklinGothic';
  src: local("Franklin Gothic Std Extra Condensed"), url( /font/FranklinGothicStd-ExtraCond.otf ) format("opentype");   
}

@font-face{
    font-family: 'FranklinGothicIE';
    src: url(/font/franklingothicstd-extracond.woff) format('woff'); /* IE */   
}

@font-face{
  font-family: 'FranklinGoth';
  src: local("Franklin Gothic Std Extra Condensed"), url( /font/ITCFranklinGothicStd-DmCd.otf ) format("opentype"); 
}

@font-face{
    font-family: 'FranklinGothIE';
    src: url(/font/66864014-ITCFranklinGothic-Std-DmCd.woff) format('woff'); /* IE */   
}

2 个答案:

答案 0 :(得分:0)

我在this post中找到了答案,其中有建议要删除缓存控件。一旦我将它添加到我的web.config,它就可以在IE中使用了:

<system.webServer>
    ...
    <httpProtocol>
        <customHeaders>
            <remove name="Cache-control"/>          
        </customHeaders>
    </httpProtocol>
</system.webServer>

答案 1 :(得分:0)

我有同样的问题。我只需要将虚拟目录转换为应用程序。 该web.config不包含删除Cache-Control,而是为woff2添加mime-type