角路由不适用于Cloudfront和S3

sup*_*azi 2 http amazon-s3 amazon-cloudfront angular

我在S3上托管了一个angular 6网站,并启用了S3网站托管。另外,我前面有一个CloudFront发行版。我配置了云前端,以便将任何内容重定向到index.html并使用200进行响应。

但是,只能使用CloudFront访问“ /”。其他网址(例如“ / *”)未加载。角度加载改为“ /”。好像角度只看到“ /”。

我添加了一些代码来记录传递给angular的url,结果始终是“ /”。

另外,有时“ / *” URL甚至不会加载“ /”,并且我在控制台“未捕获的SyntaxError:意外的令牌<”上看到此错误。

你们知道是什么原因造成的吗?

S3设置 在此处输入图片说明

云前端行为:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

Luc*_*tos 10

请看一下:如何将React和angular应用程序部署到S3 / Cloudfront

您是否为403(禁止)和404(未找到)响应创建了自定义行为?

每当有人向您的网站发出请求时,例如www.yourwebsite.com/ routeuri,请注意,此URI routeuri在您的ORIGIN(即S3 BUCKET)中不存在,因此您的来源(S3 BUCKET)将返回403。响应(禁止)。因此,您还应该为403状态代码添加一个自定义错误响应,如下图所示:

在此处输入图片说明

还请确保您还添加了index.html作为CloudfrontS3存储桶中默认根对象,如下图所示:

Cloudfront根对象 s3斗

我真的建议您阅读官方文档,以了解有关CloudFront与来源的关系。


pau*_*ulk 6

就我而言,这可以通过添加 index.html 作为“静态网站托管”下的“错误文档”来解决。没有其他的。