Statisches S3-Website-Hosting: Leiten Sie alle Pfade zu index.html um
P粉127901279
P粉127901279 2023-10-15 23:02:52
0
1
683

Ich verwende S3, um eine JavaScript-Anwendung zu hosten, die HTML5 PushStates verwendet. Das Problem besteht darin, dass, wenn der Benutzer eine URL als Lesezeichen speichert, diese zu nichts aufgelöst wird. Ich muss in der Lage sein, alle URL-Anfragen zu akzeptieren und die Root index.html in meinem S3-Bucket bereitzustellen, anstatt nur eine vollständige Umleitung durchzuführen. Meine JavaScript-Anwendung kann dann die URL analysieren und die richtige Seite bereitstellen.

Gibt es eine Möglichkeit, S3 anzuweisen, index.html für alle URL-Anfragen bereitzustellen, anstatt sie umzuleiten? Dies ähnelt dem Einrichten von Apache zur Verarbeitung aller eingehenden Anforderungen durch Bereitstellung einer einzigen index.html, wie in diesem Beispiel gezeigt: https://stackoverflow.com/a/10647521/1762614. Ich möchte wirklich vermeiden, einen Webserver zu betreiben, nur um diese Routen zu verwalten. Es ist sehr verlockend, alles von S3 aus zu machen.

P粉127901279
P粉127901279

Antworte allen(1)
P粉231112437

在 CloudFront 的帮助下,无需 URL hack 即可轻松解决该问题。

  • 创建S3存储桶,例如:react
  • 使用以下设置创建 CloudFront 分配:
    • 默认根对象:index.html
    • 源域名:S3 存储桶域,例如:react.s3.amazonaws.com
  • 转到错误页面标签,点击创建自定义错误响应
    • HTTP 错误代码:403:禁止(404:未找到,如果是 S3 静态网站)
    • 自定义错误响应:是
    • 响应页面路径:/index.html
    • HTTP 响应代码:200:正常
    • 点击创建
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage