【问题标题】:JavaScript's session history management using S3 static hosting?JavaScript 的会话历史管理使用 S3 静态托管?
【发布时间】:2013-09-14 06:35:48
【问题描述】:

我目前正在开发一个主要使用 JavaScript (JS) history 的网站。

现在的问题是,此历史记录使用 URL 的路径名。因此,例如,如果我使用 S3 作为静态托管,并且第一次想要请求像 www.example.com/about 这样的 URL,S3 会将其重定向到 /about 文件夹,而不是加载根目录(www.example. com) 并让 JS 处理 /about。当然,这种行为在静态托管的情况下是绝对正常的,所以很棘手。

我只是想知道它是否有可能在我的情况下使用 S3,其中基于根 (www.example.com/) 的每个链接都将始终引用根网站?简而言之,我希望 S3 会完全忽略路径名。因此,如果我请求 www.example.com/about,它将仅加载位于 www.example.com/index.html 中的 index.html,同时保留 URL (www.example.com/about)。

如果这还不清楚,想想 JS 的 location.hash (#)。浏览器在向静态 Web 服务器发出请求时会忽略该哈希,然后当加载 Web 时,其中包含的 JS 将处理给定的哈希。所以我的情况可以通过在我的 URL 中使用“#”来完全解决,但这次我想使用一个没有“#”的干净 URL。

感谢您的帮助。 :)

【问题讨论】:

    标签: javascript amazon-web-services amazon-s3 url-redirection html5-history


    【解决方案1】:

    没有办法让 S3 忽略路径并只返回根文件 (index.html)。最接近的方法是使用捕获所有请求的error file,但尽管这会加载您的 HTML 文件,但它总是会返回 404 状态。

    如果您不想使用 URL 参数而不是哈希值,可以使用路径参数,如下所示:

    www.yoursite.com/?folder/page.html

    这会导致您网站的索引文件被加载到浏览器中。

    【讨论】:

    • 我想我别无选择,只能使用您的建议(带“?”)或“#”。感谢您的信息 dcro!
    猜你喜欢
    • 1970-01-01
    • 2014-05-13
    • 2017-07-20
    • 1970-01-01
    • 2022-01-08
    • 2015-11-22
    • 2019-04-04
    • 2012-07-27
    • 2021-07-16
    相关资源
    最近更新 更多