Diese Frage hat bereits mehrere gute Antworten. Obwohl die Frage jetzt alt ist, habe ich mich heute diesem Problem gestellt, daher habe ich das Gefühl, dass diese Antwort vielleicht helfen kann.
S3 verfügt über zwei Arten von Endpunkten. Wenn dieser Fehler auftritt, haben Sie wahrscheinlich den S3-Bucket direkt als Endpunkt im Feld Ursprungsdomänenname für Ihre CloudFront-Verteilung ausgewählt.
Das würde ungefähr so aussehen: bucket-name.s3.amazonaws.com
und ist ein vollkommen gültiger Endpunkt. Tatsächlich scheint AWS dies als Standardverhalten zu erwarten. Dieser Eintrag befindet sich in der Dropdown-Liste, die Sie beim Erstellen Ihrer CloudFront-Distribution haben.
Wenn Sie dies jedoch tun und dann Fehlerseiten einstellen, kann dies Ihr Problem möglicherweise lösen oder nicht.
S3 verfügt jedoch über einen dedizierten Website-Endpunkt. Sie können über Ihren S3-Bucket> Eigenschaften> Statisches Website-Hosting darauf zugreifen. (Sie sehen den Link oben).
Sie sollten diesen Link anstelle des ursprünglichen automatisch ausgefüllten Links verwenden, der in CloudFront angezeigt wird. Sie können dies beim Erstellen Ihrer Distribution eingeben oder nach der Erstellung über die Registerkarte Ursprünge und Ursprungsgruppen bearbeiten und anschließend die Caches ungültig machen.
Dieser Link sieht folgendermaßen aus : bucket-name.s3-website.region-name.amazonaws.com
.
Sobald sich dies verbreitet und ändert, sollte dies Ihr Problem beheben.
tl; dr: Verwenden Sie nicht den Standard-S3-Endpunkt in CloudFront. Verwenden Sie stattdessen den S3-Website-Endpunkt. Ihre Ursprungsdomäne sollte so aussehen: my-application.s3-website.us-east-1.amazonaws.com
und nicht so my-application.s3.amazonaws.com
.
Weitere Informationen zu Website-Endpunkten finden Sie in der AWS-Dokumentation hier .
index.html
undbundle.js
keine andere Route als bedient/
. Diese Dateien müssen auf allen Routen bereitgestellt werden.