我有一个 s3 存储桶,其中所有文件夹和文件都是公共的,并且启用了静态网站托管。当我访问位于 https://s3-us-west-2.amazonaws.com/www.MYBUCKET.com/index.html 的索引页面时,页面加载得很好。但是,该网站无法正确处理相关链接。
以下内容将发送到 https://s3-us-west-2.amazonaws.com/page-2/index.html 而不是 https://s3-us-west-2.amazonaws.com/ www.MYBUCKET.com/page-2/index.html:
<a href="/page-2/">Policy</a>
虽然我确实可以通过制作
href="/www.MYBUCKET.com/page-2/"
来解决这个问题,但这会给网站的本地开发人员带来问题,或者将其部署在 www.MYBUCKET.com 环境之外的任何地方。
我的问题是:发生了什么事,通常如何解决?
您还可以使用 url 访问静态 s3 网站;
http://www.MYBUCKET.com.s3-us-west-2.amazonaws.com/index.html
一旦删除初始路径部分,这应该可以解决您的问题。您也可以随时使用route53来使用自己的域。
请记住,您可能会遇到 SSL 证书问题(但您可以使用 http 进行开发)
如果您确实需要 https,我建议您在存储桶前面使用 CloudFront,如果有兴趣,请查看 本教程。
有一种便捷的方式将 SPA 部署到 S3 和 CloudFront,并轻松在云上设置基础设施! 它称为 SWS Console Quick Cloud Architecture Builder 服务。只需几个简单的输入,您就可以控制 AWS 资源。请参阅下面的文档!
使用 S3 和 CloudFront 将 SPA(React、Vue 等)项目部署到 AWS 时,需要执行一些复杂的任务,例如在 S3 上设置静态 Web 托管并将存储桶链接到 CloudFront。不如使用 Sws Console 服务,它为您的 SPA 项目构建 S3 静态 Web 托管 + CloudFront 的 AWS 云架构,而无需担心这些任务?请参考下面的文档,尝试使用Sws Console Quick Builder工具快速构建AWS架构!