AWS S3 存储桶“404 Not Found”

23

目前我正在托管一个捆绑了Angular-2应用程序的AWS S3存储桶,因此它只包含.html.js文件。

绝对路径http://example.com/可以工作,但如果我切换到任何链接,比如 http://example.com/testsite,它会返回下面的404错误

404 Not Found
Code: NoSuchKey
Message: The specified key does not exist.
Key: voucher
RequestId: 7A08F32C18D3C6D3
HostId: 6jTd5D5QDU+AP4vo+uRcHHVT5WeRAKjoPeqVb39xoKZZSvWWz/9TsNp41TbuKXmtpYbLZJiyqwE=

我已经尝试了另一个存储桶策略,将每个文件设置为公共的,但对我来说不起作用。
有人有解决方法吗?请帮忙。

3个回答

26
在我的情况下,我必须在S3静态网站托管属性中的“索引文档”和“错误文档”中都指定index.html

4
非常感谢。我挣扎了2个小时。 - Mandeep Singh
1
是的,这真是救命稻草...干杯! - MwamiTovi

20

您的存储桶策略Resource属性需要包含/*,请注意:

"Resource":["arn:aws:s3:::bucketname/*"]

您还需要将错误文档设置为您的index.html


1
如何将错误文档设置为index.html? - Sebastián Rojas
1
@SebastiánRojas 或将来参考 - 在“静态网站托管”配置模态窗口中,您可以设置错误页面,只需将其分配为索引页面的相同值即可。 - Mugen
@David Finley,你能解释一下为什么在URL中添加路由会导致首先出现404错误吗?例如,导航到 ****.s3-website-us-east-1.amazonaws.com 可以正常工作,并且单击我的仪表板链接也可以正常工作 ****.s3-website-us-east-1.amazonaws.com/dashboard 但是,如果我直接导航到具有仪表板路由的URL,则会出现404错误。我更新了我的错误文档以将其路由到index.html,并解决了该问题。你有什么想法吗? - Zach
将错误文档设置为您的index.html解决了我的问题。 - Phares

0

在错误页面中指定index.html对我也解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接