在 Heroku 上部署了一个 Django 应用程序,在我的主页之后,之后的每个页面都不会渲染 Amazon S3 上托管的 Javascript 文件,但是当在 Inspect Element 中打开控制台时,似乎一切都加载正常。我的 HTML 文件的 header 如下
#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 。产地 http://warm-oasis-9454.herokuapp.com Access-Control-Allow-Origin 不允许。
有人帮帮我吗?
编辑:
这是有效的页面,索引
#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>
这更有帮助吗?
最佳答案
您需要在 S3 存储桶上启用跨源资源共享 (CORS),亚马逊(值得庆幸的是)最近添加了该功能。这是文档:http://docs.amazonwebservices.com/AmazonS3/latest/dev/cors.html也在这里 http://docs.amazonwebservices.com/AmazonS3/latest/UG/EditingBucketPermissions.html
关于Javascript 未在 Heroku 上的 Django 应用程序中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215994/