在 Web 开发领域,@font-face 对于丰富网页具有巨大的意义自定义字体。但是,用户在 Internet Explorer 7、8 和 9 中通过 HTTPS 使用 EOT 字体时可能会遇到特殊问题。
问题:
尽管确保服务器托管具有正确内容类型的字体,EOT 字体无法通过 HTTPS 加载,但它们可以通过 HTTP 无缝运行。这种令人费解的行为让许多开发人员感到困惑。
分析:
要进一步研究这个问题,检查 HTTP 标头 Cache-Control 至关重要。在某些情况下,将字体的 Cache-Control 设置为 no-cache 可能会导致 IE 忽略通过 HTTPS 下载的字体。
解决方案:
解决此难题在于删除 Cache-Control 标头或将其设置为允许缓存的不同值。通过这样做,IE 将停止忽略下载的字体并通过 HTTPS 正确呈现它。
其他见解:
值得注意的是,此行为可能与 KB 815313 相关,它禁止在通过 SSL 下载活动文档期间进行缓存。了解这种相关性可以帮助开发人员识别并纠正其 Web 应用程序中的类似问题。
以上是为什么在 IE7、8 和 9 中 EOT 字体无法通过 HTTPS 加载?的详细内容。更多信息请关注PHP中文网其他相关文章!