【问题标题】:Django zappa 403 forbidden error and net:: Err_AbortedDjango zappa 403 禁止错误和 net:: Err_Aborted
【发布时间】:2018-10-15 21:43:44
【问题描述】:

我正在尝试使用 zappaAWS Lambda 部署 vuejs/frontend & django(python)/backend webapp时间>。我的所有静态文件都在 S3 存储桶中。 每当我尝试在浏览器中查看它时,页面都是空白的,并且我在控制台中收到以下错误:

GET https://example.s3.amazonaws.com/static/webpack_bundles/static/js/app.3122315aa5664adf.js 403(禁止)
GET https://example.s3.amazonaws.com/static/webpack_bundles/static/css/app.b161c29d6c5fa852dc6887b62955427e6.css net::ERR_ABORTED
获取https://7exa5465ef451.execute-api.us-east-1.amazonaws.com/favicon.ico403()

【问题讨论】:

    标签: django amazon-web-services amazon-s3 webpack vuejs2


    【解决方案1】:

    默认情况下,出于安全原因,S3 不允许公众访问其内容。有多种方法可以改变这种情况,通过对每个单独的对象设置公共权限,或应用存储桶策略。

    https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html 提供了有关如何控制对 S3 的访问的更多详细信息。

    一个特定的公共存储桶策略示例可能如下所示:

    {
      "Version":"2012-10-17",
      "Statement":[
        {
          "Sid":"AddPerm",
          "Effect":"Allow",
          "Principal": "*",
          "Action":["s3:GetObject"],
          "Resource":["arn:aws:s3:::examplebucket/*"]
        }
      ]
    }
    

    取自:https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-2

    一般来说,我建议通过 Cloudfront 提供网站数据,在这种情况下,您可以专门允许 Cloudfront 使用诸如

    之类的策略访问 S3 数据
    {
       "Version":"2012-10-17",
       "Id":"PolicyForCloudFrontPrivateContent",
       "Statement":[
         {
           "Sid":" Grant a CloudFront Origin Identity access to support private content",
           "Effect":"Allow",
           "Principal":{"CanonicalUser":"79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"},
           "Action":"s3:GetObject",
           "Resource":"arn:aws:s3:::example-bucket/*"
         }
       ]
    }
    

    取自:https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-6

    【讨论】:

    • 感谢您的信息,您为我节省了很多时间,但我的一些 CSS(主要是字体和图像)没有从 CloudFront 加载。
    • 在 SO 上不允许仅链接答案,因为链接会随着时间的推移而改变或失效。您需要形成自己的答案或完全删除它。 stackoverflow.com/help/how-to-answer
    • @colde 是的,这些是错误:map-image.f40ed5b.png 加载资源失败:服务器响应状态为 404 () header-bg.e2d2a51.jpg 加载资源失败:服务器响应状态为 404 () SverigeScriptClean_Demo.6f26ea8.ttf 加载资源失败:服务器响应状态为 404 () FogtwoNo5.2cf6f1e.ttf 加载资源失败:服务器响应状态为 404 () Handlee-Regular.64bcfe1.ttf 加载资源失败:服务器响应状态为404()
    • @DewonClark 404 表示文件不存在。所以要么它没有上传,要么 URL 的某些部分不正确。也许您的部署过程没有一致地上传 webpack 资产?
    • @colde 可能是 webpack 的问题。好像我的一半 CSS 文件没有加载。
    猜你喜欢
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 2012-05-20
    • 2013-06-27
    • 2013-05-25
    • 2019-09-28
    • 2018-11-03
    相关资源
    最近更新 更多