我遇到了 IE7 的奇怪行为。
在我的应用程序中,我有许多 JS 和 CSS 文件。由于加载每个页面的请求数量,我决定将它们全部打包到两个文件中,一个包含所有 CSS 文件 (css_pack.css),另一个包含所有 JS 文件 (js_pack.js)。
在 FF、Chrome、IE8 上一切正常。问题是在 IE7 上显示我的应用程序。在 IE7 中,似乎没有读取包(css 和 js)。也就是说,我的应用程序完全没有格式化并且丢失了很多动态 js 行为 (jquery)。
经过大量测试后,我尝试删除 bundle 并分别指向每个文件。现在,一切都在 IE7 中恢复正常,还有我的性能问题...
嗯,这对任何人来说都很熟悉吗?为什么只有 IE7 不喜欢我的包?
更新:
这是我的头部部分:
<head>
<link rel="stylesheet" href="<c:url value="/css/blueprint/screen-nopack.css"/>" type="text/css" media="screen, projection">
<link rel="stylesheet" href="<c:url value="/css/blueprint/print-nopack.css"/>" type="text/css" media="print">
<!--[if lt IE 8]><link rel="stylesheet" href="<c:url value="/css/blueprint/ie-nopack.css"/>" type="text/css" media="screen, projection"><![endif]-->
<link rel="stylesheet" href="<c:url value="/css/css_pack.css"/>" type="text/css" media="screen, projection">
<!--[if lt IE 8]><link rel="stylesheet" href="<c:url value="/css/11-jqtransform.css"/>" type="text/css" media="screen, projection"><![endif]-->
<script type="text/javascript" src="<c:url value="/js/js_pack.js"/>"></script>
<!--[if IE]> <script type="text/javascript" src="<c:url value="/js/excanvas-nopack.js"/>"></script> <![endif]-->
</head>
该行指向的文件...
<!--[if lt IE 8]><link rel="stylesheet" href="<c:url value="/css/11-jqtransform.css"/>" type="text/css" media="screen, projection"><![endif]-->
... 成为 css 包 (css_pack.css) 的一部分。但是,它的内容只有在将不同的行添加到头部时才能被 IE 读取...
更新 2
这是前面JSP处理生成的HTML代码,被IE7接收:
<head>
<link rel="stylesheet" href="/GestorAMPB/css/blueprint/screen-nopack.css" type="text/css" media="screen, projection">
<link rel="stylesheet" href="/GestorAMPB/css/blueprint/print-nopack.css" type="text/css" media="print">
<!--[if lt IE 8]><link rel="stylesheet" href="/GestorAMPB/css/blueprint/ie-nopack.css" type="text/css" media="screen, projection"><![endif]-->
<link rel="stylesheet" href="/GestorAMPB/css/css_pack.css" type="text/css" media="screen, projection">
<!--[if lt IE 8]><link rel="stylesheet" href="/GestorAMPB/css/11-jqtransform.css" type="text/css" media="screen, projection"><![endif]-->
<script type="text/javascript" src="/GestorAMPB/js/js_pack.js"></script>
<!--[if IE]> <script type="text/javascript" src="/GestorAMPB/js/excanvas-nopack.js"></script> <![endif]-->
</head>
最佳答案
你用什么方法打包这些资源?我假设您必须先将它们放在一起,这是您可能会遇到一些问题的地方。
在 js 文件的情况下,确保它们在文件末尾都有一个换行符,最后一行以 ;
如果是css文件,有没有运行js代码的css?当它放在一起时,我看到了这个问题。
最后,你试过ie调试工具看看js/css加载了多少吗?通常会出现一个问题,即部分文件加载而其余部分没有加载,找出中断的位置并查看 catted 文件输出
关于javascript - IE7 不读取 CSS 和 JS 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4922355/