Internet Explorer 用户可能会遇到使用 @font-face 规则通过 HTTPS 连接加载 EOT 字体的问题。虽然字体可能通过 HTTP 成功加载,但切换到 HTTPS 可能会导致失败。
调查:
问题源于 IE 对 HTTPS 请求的处理。当通过 HTTPS 加载字体并且服务器发送 Cache-Control: no-cache 标头时,IE 会忽略下载的字体。这与 KB 815313 中描述的 IE 行为有关,该行为会阻止缓存通过 SSL 下载的活动文档。
解决方案:
要解决此问题,请确保服务器托管字体不会发送 Cache-Control: no-cache 标头。删除或修改此标头将允许 IE 识别下载的字体。
示例:
@font-face { font-family: 'GothamCondensedBold'; src:url('path/to/fontgothmbcd-webfont.eot'); src:url('path/to/fontgothmbcd-webfont.eot?#iefix') format('embedded-opentype'), url('path/to/fontgothmbcd-webfont.woff') format('woff'), url('path/to/fontgothmbcd-webfont.ttf') format('truetype'), url('path/to/fontgothmbcd-webfont.svg#GothamCondensedBold') format('svg'); font-weight: normal; font-style: normal; }
通过确保服务器不发送 Cache-Control:无缓存标头,IE 将通过 HTTPS 正确加载 EOT 字体。
以上是为什么 IE 无法通过 HTTPS 加载 EOT 字体?的详细内容。更多信息请关注PHP中文网其他相关文章!