【问题标题】:How to fix nextjs cloudfront static assets respond with 403?如何修复 nextjs cloudfront 静态资产响应 403?
【发布时间】:2020-06-04 10:49:16
【问题描述】:

我正在尝试使用 cloudfront 和 route53 将我的网站部署到 aws。该站点已在https://higgle.io 上部署和运行 但是资产没有加载,因为图像抛出 403。我该如何解决? 我正在使用无服务器 serverless-next.js。我正在关注他们的一篇博客文章进行设置。 到目前为止,我在路由级别添加了 serverless.yml

higgle:
 component: serverless-next.js

我的 next.config.js 看起来像

module.exports = {
  target: 'serverless',
  webpack: (config) => {
    config.module.rules.push({
      test: /\.svg$/,
      use: ['@svgr/webpack'],
    });
    return config
  }
}

虽然文件夹结构看起来像

-root
  -.next
  -pages
    -_document.js
    -index.js
  -public
    -static
      -favicon.ico
  -next.config.js
  -package.json
  -serverless.yml

知道如何解决这个问题吗? 谢谢

【问题讨论】:

  • 你有没有想过,我有 1 个给出 403 的 fricken css 文件,只是想找出原因。
  • 我的问题是图像,它位于public 文件夹内的static 文件夹中,我将static 重命名为images 它开始工作。来到你的css问题,你已经添加了吗?还是 Nextjs 添加呢?
  • 是的,我确实遇到过,我只是将它移到 public/ 文件夹中,现在效果很好。
  • 很高兴它工作了????

标签: amazon-web-services amazon-s3 amazon-cloudfront serverless-framework serverless


【解决方案1】:

S3 返回 403,因为您的项目是私有的。

  1. 将您的 S3 项目更改为公开。检查它们是否可以通过您的 S3 静态托管地址访问。
  2. 第 1 步将修复所有静态资源。如果您正在运行单页应用程序,您还需要在 S3 返回 404 时返回您的索引页。在 CloudFront 中,转到错误页面,创建自定义错误响应,选择 404 响应,选择自定义响应选项,将响应代码 200 和响应页面路径设为您的索引页面。

您的存储桶策略应该是:

{
"Version": "2012-10-17",
"Id": "Policy1517754859350",
"Statement": [
    {
        "Sid": "Stmt1517754856505",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
    }
]

}

【讨论】:

  • 我公开了我的整个 s3 存储桶。 :( 我可以看到点击下载 url 的文件。但不是在云端。我想我缺少一些东西可以让这些静态文件向公众开放或其他东西。
  • 我已经用您需要的存储桶策略更新了答案。如果这不起作用,请使用更多信息更新您的答案,包括您收到的实际错误消息以及存储桶设置的确切详细信息。
  • 我把原理改成了“*”,但还是没有加载。 GET https://higgle.io/static/Menu_Temp.png 404 这就是错误所在。实际上我没有创建它由无服务器自动创建的存储桶。所以告诉我你需要什么样的信息,我会提供所有的。
  • 您的 s3 存储桶需要为网站托管设置,您是否已完成? docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
猜你喜欢
  • 1970-01-01
  • 2015-07-25
  • 2021-11-11
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 2019-11-03
  • 1970-01-01
相关资源
最近更新 更多