2

我正在开发一个即将推出的大型网站。他们仍然有将近 15% 的桌面用户使用 IE8,所以我们必须支持它。

我们正在使用包含 HTML5shiv 的 Modernizr (v 2.6.3) 的自定义构建。我们还使用了 stripmq(我们取出了 response.js 以消除另一组相对不必要的变量)。我们问题的症结似乎在于@font-face。我们正在链接到外部站点上的一些字体 css 和字体文件,它们在其中将 .eot 作为 MIME-TYPE 应用程序/八位字节流提供(似乎成功,尽管互联网上有所有引用)。我们还链接到一些本地字体,但按照推荐使用 MIME-TYPE application/vnd.ms-object(Bootstrap 的 Glyphicons,Icomoon 自定义集,StateFace)。

从页面到页面,从环境到环境,崩溃是不可预测的。我们首先链接到 .eot 文件,然后再加载其余的 css(提供其他源),因为这缓解了几天前 IE8 中的多源问题。我们还认为我们之前通过在外部而不是本地链接到这几个字体文件(具有不同的 MIME-TYPE)以及通过删除我们的一种自定义字体来修复它,但随着时间的推移,尽管如此,我们仍然会崩溃.

根据另一个 StackOverflow 帖子,我们尝试将 .eot 文件定义移动到正文,但没有成功。过去从站点中删除所有 CSS 可以防止崩溃(尽管这不是一个选项)。我们还验证了我们的@font-face 定义都没有在媒体查询中。


我们文档开头的近似值(我不能分享完整的代码示例):

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--><html class="no-js gt-ie8"> <!--<![endif]-->
<head>
<meta charset="utf-8">

css for ie fonts the rest of the css (通过 CssMin 缩小后,BlessCss 智能地分成两部分,使用导入选项)

Modernizr (v 2.6.3)

stripmq 去除媒体查询并仅提供适用于 1280px 宽的样式(仅适用于 IE 的条件)

其余脚本(包括 jQuery v. 1.11.1)加载到正文中。


更新:避免崩溃的最后一步是让我们的 CDN 不提供带有这个晦涩标题的内容:https ://rogerkeays.com/blog/internet-explorer-meets-the-vary-header

4

0 回答 0