gpt4 book ai didi

mod-rewrite - S3 上带有 Backbone 前端的深层链接

转载 作者:行者123 更新时间:2023-12-04 03:04:25 24 4
gpt4 key购买 nike

我有一个在 S3 上运行的单页 javascript(Backbone) 前端,我希望有几个深层链接被重定向到同一个索引文件。您通常会在 Apache 中使用 mod_rewrite 执行此操作,但在 S3 中无法执行此操作。

我尝试将默认错误文档设置为与索引文档相同,并且
这在表面上是有效的,但是如果您检查实际的响应状态 header ,您会看到页面返回 404。这显然不好。

还有另一种解决方案,它丑陋但比错误文档黑客更好:

事实证明,您可以创建 index.html 的副本并将其命名为与子目录相同的名称(减去尾部斜杠),例如,如果我克隆 index.html 并将其命名为“about”,并确保内容-Type 设置为 text/html(在元数据选项卡中)所有对/about 的请求都将返回新的“about”,它是 index.html 的副本。

显然,这个解决方案是次优的,只适用于预定义的深层链接目标,但如果克隆 index.html 的步骤是前端构建过程的一部分,那么麻烦就可以减少。使用 Backbone-Boilerplate 我可以编写一个繁重的任务来做到这一点。

除了这 2 个 hacky 解决方法之外,我没有看到除诉诸 hashbangs 之外的其他方法。

任何建议将不胜感激。

更新:

S3 现在(实际上有一段时间)支持 Index Documents这解决了这个问题。

此外,如果您使用 Route 53 进行 DNS 管理,您可以设置 alias record指向您的 S3 存储桶,因此您不再需要子域 + cname :)

最佳答案

不幸的是,据我所知(而且我经常使用 s3 网站),你的钱是对的。正如您所说,404 hack 是一个非常糟糕的主意,因此您基本上有以下选择:

  • 使用某种常规后端而不是 S3
  • Content-Type解决方法
  • Hashbangs

  • 很抱歉成为坏消息的承载者:)

    对我来说,你不能真正将域的根指向 S3 网站的事实是我的一些东西的交易破坏者。 mod_rewrite -type 场景听起来是另一个很好的例子,但它不起作用。

    关于mod-rewrite - S3 上带有 Backbone 前端的深层链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9313337/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com