0

在 Heroku 上部署了一个 Django 应用程序,在我的主页之后,之后的每个页面都不会呈现托管在 Amazon S3 上的 Javascript 文件,但是在 Inspect Element 中打开控制台时,似乎一切正常。我的 HTML 文件的标题如下

#questions.html
<link rel="stylesheet" type="text/css" href="https://s3.amazonaws.com/mrt-assets/static/css/QandA.css">
<link rel="stylesheet" type="text/css" href="https://s3.amazonaws.com/mrt-assets/static/css/Button.css">
<script src="https://s3.amazonaws.com/mrt-assets/static/js/prefixfree.min.js"></script>
<script src="https://s3.amazonaws.com/mrt-assets/static/js/index.js"></script>
<script src="https://s3.amazonaws.com/mrt-assets/static/js/qanda.js"></script>

该文件显然有效,但是当我加载页面时所有弹出窗口都已经打开。

唯一的错误是这个

2XMLHttpRequest cannot load https://s3.amazonaws.com/mrt-assets/static/css/QandA.css. Origin http://warm-oasis-9454.herokuapp.com is not allowed by Access-Control-Allow-Origin.

2XMLHttpRequest 无法加载https://s3.amazonaws.com/mrt-assets/static/css/Button.css。Access-Control-Allow-Origin 不允许来源http://warm-oasis-9454.herokuapp.com 。

有人帮我吗?

编辑:

这是有效的页面,索引

#index.html
<link rel="stylesheet" type="text/css" href="https://s3.amazonaws.com/mrt-assets/static/css/Index.css">
<link rel="stylesheet" type="text/css" href="https://s3.amazonaws.com/mrt-assets/static/css/Button.css">
<script src="https://s3.amazonaws.com/mrt-assets/static/js/prefixfree.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://s3.amazonaws.com/mrt-assets/static/js/index.js"></script>

这也是我对 s3 存储桶的 CORS 要求

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>
            testsite.com
        </AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
    </CORSRule>
</CORSConfiguration>

这更有帮助吗?

4

2 回答 2

2

您需要在您的 S3 存储桶上启用跨源资源共享 (CORS),这是 Amazon(谢天谢地)最近添加的。这是文档:http ://docs.amazonwebservices.com/AmazonS3/latest/dev/cors.html和这里http://docs.amazonwebservices.com/AmazonS3/latest/UG/EditingBucketPermissions.html

于 2012-11-04T04:17:48.983 回答
1

想通了,我需要做的就是颠倒 HTML 页面中 Javascript 文件和 CSS 文件的顺序。

于 2012-11-04T21:33:33.447 回答