【问题标题】:S3 Static Website not handling relative links wellS3 静态网站不能很好地处理相关链接
【发布时间】:2018-03-22 01:08:17
【问题描述】:

我有一个 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 环境之外的任何地方。

我的问题是:发生了什么,通常如何解决?

【问题讨论】:

  • 请注意,/page-2/ 不是相对链接。这是一条绝对路径,因此您观察到的行为是正确的。下面来自@RenatoGama 的答案看起来不错,但您可能还会发现"./page-2/""page-2/" 样式中的正确相对链接确实有效...或"../page-2/",具体取决于上下文。

标签: amazon-web-services amazon-s3 relative-path


【解决方案1】:

您也可以通过 url 访问静态 s3 网站;

http://www.MYBUCKET.com.s3-us-west-2.amazonaws.com/index.html

删除初始路径部分后,这应该可以解决您的问题。您也可以随时使用 route53 来使用自己的域。

请记住,您可能遇到 SSL 证书问题(但您可以使用 http 进行开发)

如果您确实需要 https,我建议您在存储桶前使用 CloudFront,如果有兴趣,请查看 this tutorial

【讨论】:

    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 2017-03-29
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多