如何修复AccessDenied错误CloudFront Angular部署的应用程序?

时间:2019-07-19 17:41:45

标签: angular deployment amazon-cloudfront

我正在设置一个部署在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错误。

1 个答案:

答案 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结构,因为它将无法正常工作。希望这对未来有所帮助。