【发布时间】:2021-03-28 10:29:25
【问题描述】:
一般来说一切正常,我有一个 gatsby 生成的静态网站、用于静态托管的 s3 存储桶设置和用于提供文件的云端分发。问题是当我转到子页面并刷新页面或直接转到 url 时,我收到 403 错误。当我在 url 末尾附加 /index.html 时,不会发生这种情况。
在我的云端设置中,我将默认根对象设置为index.html,因此根据文档,一切都应该工作。这不是 SPA,因此将 403 错误页面设置为 index.html 将无济于事 - 它只会重定向到主页。
我想要的行为是当用户访问 url http://example.com/path/to/directory 时,会提供来自 /path/to/directory/index.html 的 index.html 文件。
S3 存储桶权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[bucket-name]/*"
},
{
"Sid": "2",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/[user]"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[bucket-name]/*"
},
{
"Sid": "3",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/[user]"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[bucket-name]/*"
}
]
}
【问题讨论】:
-
您是否在 CF 发行版中将
Default Root Object定义为index.html? -
"在我的云端设置中,我将默认根对象设置为 index.html"
标签: amazon-web-services amazon-s3