【发布时间】:2014-05-05 09:19:00
【问题描述】:
所以在我自己的网站中使用 HTTPS 时,我在 IE8 中遇到了 Font Awesome 的问题,这甚至可以在 Font Awesome 自己的网站上重现。如果我在 IE8 中转到 Font Awesome over HTTPS ,我会得到所有图标的框,但是如果我转到 Font Awesome over HTTP,我会正确呈现图标。
这里有什么问题?我听说这可能与 Font Awesome over HTTPS 中的相对字体路径有关,但不确定。
下面是给喜欢这类东西的人的截图:
更新
所以这里是引用字体并加载 CSS 的代码。我将使用 Font Awesome 网站上的代码,因为这似乎是 Font Awesome 的问题,而不是 一定是我的网站:
引用 CSS 和图标的 HTML:
<link rel="stylesheet" href="../assets/css/site.css">
<link rel="stylesheet" href="../assets/css/pygments.css">
<link rel="stylesheet" href="../assets/font-awesome/css/font-awesome.css">
...
<div class="fa-hover col-md-3 col-sm-4">
<a href="../icon/adjust"><i class="fa fa-adjust"></i> fa-adjust</a>
</div>
在font-awesome.css内:
@font-face {
font-family: 'FontAwesome';
src: url('../fonts/fontawesome-webfont.eot');
src: url('../fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'),
url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
【问题讨论】:
-
你能显示加载字体的代码部分吗?您是使用 CDN 还是从服务器本地加载它?您使用的是相对路径还是绝对路径?许多因素可能会导致从混合的 HTTP 和 HTTPS 源加载页面内容,并导致当主页面通过 HTTPS 加载时在 IE8 中获得的内容。
-
已更新。如果您需要更多信息,请告诉我,但您也应该能够访问 Font Awesome 的网站并查看其来源。谢谢!
-
所以另一个数据点。如果不是在@font-face 部分中使用相对 URL,而是使用硬编码的 http:// 路径,而不是 HTTPS 加载字体就好了(尽管有关于加载不安全内容的 IE 错误)但是如果我硬编码到 HTTPS 然后字体不加载。通过 HTTPS 请求 .eot 文件或至少以我的方式请求似乎存在一些问题。
-
我有同样的问题,图标字体没有通过 HTTPS 在 IE8 中显示。 @tkeE2036,你有关于这个问题的更新吗?
-
问题是在检索字体时发送的 Pragma: no-cache。从响应中删除它(对于提供字体真棒字体的端点),它应该可以解决问题。
标签: css http https internet-explorer-8 font-awesome