我在S3上托管了一个angular 6网站,并启用了S3网站托管。另外,我前面有一个CloudFront发行版。 我配置了云前端,以便将任何内容重定向到index.html并使用200进行响应。
但是,只能使用CloudFront访问“ /”。其他网址(例如“ / *”)未加载。角度加载改为“ /”。好像角度只看到“ /”。
我添加了一些代码来记录传递给angular的url,结果始终是“ /”。
另外,有时“ / *” URL甚至不会加载“ /”,并且在控制台“未捕获的SyntaxError:意外的令牌<”上看到此错误。
你们知道是什么原因造成的吗?
云前端行为:
答案 0 :(得分:3)
请查看:how to deploy react and angular apps to S3/Cloudfront
您是否为403(禁止)和404(未找到)响应创建了自定义行为?
每次有人向您的网站发出请求时,例如www.yourwebsite.com/ routeuri ,请注意,此URI routeuri 在您的来源中不存在(即S3 BUCKET),因此您的来源(S3 BUCKET)将返回403响应(禁止)。因此,您还应该为403状态代码添加自定义错误响应,如下图所示:
还请确保同时在 Cloudfront 和 S3存储桶中将 index.html 添加为默认根对象。 / strong>,如下图所示:
我真的建议您阅读官方文档以了解CloudFront与起源的关系。
答案 1 :(得分:0)
就我而言,这可以通过在“静态网站托管”下添加index.html作为“错误文档”来解决。没什么。