Javascript 未在 Heroku 上的 Django 应用程序中呈现

标签 javascript python django heroku amazon-s3

在 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/

相关文章:

javascript - 正则表达式匹配两个或多个不连续的相同字符

javascript - e2e 测试 Angular UI 网格的规范方法

javascript - 网页优化: Should CSS and JS be inserted into the HTML resource after minification?

python - 在 App Engine 上将大型 CSV 文件写入 GCS

python - 我的自定义 heroku python buildpack 在每次推送时下载需求

python - 具有多个ManyToMany条件的查询

python - 如何覆盖 modelform 类的 save() 方法并添加缺失信息?

javascript - php 在弹出的 div 中发布内容

python - 当用户从 PyPI pip 安装您的软件包时,从 setup.py 中访问用户激活的虚拟环境

python - 字符串的语义相似性——结果不佳