Respond.js无法跨域工作

时间:2013-01-28 14:22:22

标签: javascript internet-explorer-8 cross-domain media-queries respond.js

我很难让Respond's CDN/X-Domain Setup工作。

我开始提供CDN的所有资产:

<link rel="stylesheet" href="http://cdn.example.com/css/main.css?2013012401">
<script src="http://cdn.example.com/js/modernizr-2.6.2.min.js?2013012401"></script>
<script src="http://cdn.example.com/js/respond.min.js?2013012401"></script>

理论上这应该有效,因为所有资产都来自同一个域。但IE8并没有像它应该那样接收Media Query支持。所以我调查了Respond的CDN / X-Domain设置并修改了我的<head>部分:

<link rel="stylesheet" href="http://cdn.example.com/css/main.css?2013012401">
<script src="http://cdn.example.com/js/modernizr-2.6.2.min.js?2013012401"></script>
<script src="http://cdn.example.com/js/respond.min.js?2013012401"></script>
<link href="http://cdn.example.com/respond-proxy.html?2013012401" id="respond-proxy" rel="respond-proxy">
<link href="http://cdn.example.com/img/respond.proxy.gif?2013012401" id="respond-redirect" rel="respond-redirect">
<script src="http://cdn.example.com/js/respond.proxy.js?2013012401"></script>

如果失败了,我将我的<head>部分修改为:

<link rel="stylesheet" href="http://cdn.example.com/css/main.css?2013012401">
<script src="http://cdn.example.com/js/modernizr-2.6.2.min.js?2013012401"></script>
<script src="http://cdn.example.com/js/respond.min.js?2013012401"></script>
<link href="http://cdn.example.com/respond-proxy.html?2013012401" id="respond-proxy" rel="respond-proxy">
<link href="/img/respond.proxy.gif" id="respond-redirect" rel="respond-redirect">
<script src="/js/respond.proxy.js"></script>

我不确定我还能尝试什么才能让它发挥作用。它在没有使用CDN的本地Dev环境中工作正常,但在Live环境中,此Respond.js CDN / X-Domain安装程序无法正常工作。它可能与添加到CDN资产的cache-buster查询字符串有关吗?当所有资产都来自同一个域时,为什么我的原始示例无法正常工作?

修改: Here's the error that's thrown in IE8

1 个答案:

答案 0 :(得分:6)

此问题是由包含查询字符串(respond-proxy.html)的respond-proxy.html?2013012401文件引用引起的。从此文件中删除查询字符串会导致上述实现工作。