我在AWS S3上托管了一个静态网站,该网站通过AWS Cloudfront服务。根目录(在本例中,我已将myproject/build/*
作为使用编译文件的根目录上传到S3)具有index.html
。
可以通过index.html
正常访问https://example.com
。我在build/subpage/index.html
处添加了子页面目录,以在https://example.com/subpage
处进行引用。我不希望在页面中加入.html
扩展名。
在localhost上,这可以按预期工作:我可以仅通过build/subpage/index.html
访问项目的文件夹https://example.com/subpage
。
但是在S3上,我收到了错误AccessDenied
的信息:
此XML文件似乎没有任何关联的样式信息 用它。文档树如下所示。
我只能通过https://example.com/subpage/index.html
显式访问子页面。
问题:为什么S3允许您引用根域index.html
文件而不在URL中指定它,但是子目录要求您这样做?
在this SO post上读到该问题时指出:
example.com的索引文档必须存储在 example.com/index.html(假设“ index.html”是您选择的索引 文件名)-必须存储在该文件的“目录”中 索引...
/subpage/index.html
实际上是根目录下的一个单独目录,带有自己的index.html
文件。