IE 在 HTTPS 的页面刷新时未加载字体



我正在开发一个Web应用程序,使用angular作为前端,Java用于后端。我使用瑞士-721-light-condensed-bt作为字体。 我使用的代码是:

@font-face {
font-family: 'Swis721CnBT';
font-style: normal;
font-weight: normal;
src: url('../../../resources/fonts/swiss-721-light-condensed- 
bt.eot'),url('../../../resources/fonts/Swiss 721 Condensed BT.ttf');
}

当我在http上部署应用程序时,它适用于Internet Explorer,但是当我在 https然后对于IE,它显示出奇怪的行为。当我通过直接刷新 url 加载页面时,字体不是 应用,但是当我通过一些内部链接转到页面 URL 时,字体被应用了。 它只发生在https上。

我尝试在论坛上找到它,但没有得到任何有用的解决方案。

已经发布了相同的问题,但我没有得到任何可行的解决方案。

谢谢。。

今天遇到了同样的问题,并在这里找到了一个灵魂: https://github.com/FortAwesome/Font-Awesome/issues/7681 (由 willyelm 于 2016 年 1 月 23 日发布(

所以我在这里引用这个解决方案:


如果您正在运行带有apache的https服务器并设置了以下信息,则我遇到了同样的问题:

Cache-Control: no-store

您需要将其删除。

如果出于安全原因,您仍然需要设置no-store,则可以将此规则添加到服务器Apache Conf中:

<FilesMatch ".(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Cache-Control "max-age=3600"
</IfModule>
</FilesMatch>

基本上,您将允许IE将缓存与字体文件一起存储1小时。 这不会影响安全性。

最新更新