我正在设置一个部署在S3上并由CloudFront发行版处理的Angular应用程序。当我访问该应用程序时,它可以正常工作,但是如果我重新加载页面,则会出现以下错误:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>E716BA4DFD8C1B54</RequestId>
<HostId>
0EcNthjt/zlsAZxEx8JncShstTBNxFram3F6Jy2uI0LD+am1l+7YxGAbZ1dVphkuhZj32mnkjug=
</HostId>
</Error>
在本教程之后,我已经使用所有必需的字段设置了CloudFront发行版:
Deploy an angular spa as a static website
我已将index.html放置为默认根对象,并将其放置在S3存储桶的索引文档选项下。
通过该设置,它应该可以工作,并在重新加载页面时使用angular的index.html,但是我收到了AccessDenied错误。
答案 0 :(得分:0)
好的,我刚刚从同一篇文章中发现了问题:
Deploy an angular spa as a static website
请务必注意:
重要提示:原始域名将为您提供下拉菜单 S3斗。您不应该使用它。由于省略了S3的区域, 它将导致请求重定向,而不是通过 通过CloudFront的流量。 (可能有更好的配置方法 我不确定。)因此,只需在此处复制并粘贴您的S3 URL。 .s3-.amazonaws.com。
确保使用以下网址结构将您的存储桶作为“原始域名”放置:
<bucket-name>.s3-website-<bucket-region>.amazonaws.com
请勿使用建议的存储桶URL结构,因为它将无法正常工作。希望这对未来有所帮助。