Django,CloudFront和respond.js

时间:2012-10-03 19:58:34

标签: django amazon-s3 amazon-cloudfront django-compressor

我正在尝试让媒体查询在IE 8中运行,并且我已经Respond.js在开发中很好地工作了。但是,当我将其部署到我的生产环境时,Respond.js无法正常工作。我按照GitHub上的说明设置了CDN(我们使用S3& Cloudfront),我确保所有的javascript和respond-proxy.html文件都可以通过我指定的URL获得。

我目前的理论是,Django在此过程中的某处停止了Respond.js的AJAX,尤其是我的Django日志中的这一行:

WARNING Wed, 03 Oct 2012 15:22:13 +0000 base xxx xxxxxxx Not Found: /https://dxxxxxxxxxxxx.cloudfront.net/j/r/respond-proxy.html

它似乎正在尝试在本地服务器上找到/https://d...。每页请求会多次显示该行。

以下是代码:

<link rel="stylesheet" type="text/css" media="screen" href="https://dxxxxxxxxxx.cloudfront.net/static/css/style.css" />
<script type="text/javascript" src="/static/js/respond.src.js"></script>
<link href="https://dxxxxxxxxxx.cloudfront.net/static/js/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
<link href="/static/js/respond.proxy.gif" id="respond-redirect" rel="respond-redirect" />
<script type="text/javascript" src="/static/js/respond.proxy.js"></script>

请注意,我的CSS是使用django-compressor压缩的,就像我的其他JS一样。上面的代码在{%compress%}块之外。

1 个答案:

答案 0 :(得分:1)

原来我需要破解respond.proxy.js才能让它工作。我在checkBaseUrl()中注释了第74行:

//          href = bref + href;

请注意,这可能是由我的页面上运行的其他JS引起的,并且可能不是(可能不是?)response.proxy.js中的错误。