Ich habe eine statische Website mit einer einzelnen Seite, die in AWS-Bucket gehostet wird. Die Anwendung ist JavaScript.Einzelseitenanwendung in AWS CloudFront
Ich habe Cloudfront für die Bereitstellung des Inhalts eingerichtet. Der Inhalt der Website wird in einem AWS S3-Bucket gehostet, und Cloudfront wird verwendet, um eine schnellere Bereitstellung von Webinhalten für Benutzer an verschiedenen Standorten zu ermöglichen.
Aber nach der Einrichtung der Website habe ich ein Problem. Wenn ich die Seite aktualisiere, wird der Fehler ausgelöst, da der Schlüssel nicht vorhanden ist. Ich kann die Seite nicht aktualisieren oder die URL kopieren und sie auf einer anderen Registerkarte im Browser einfügen, um auf die gleiche Seite zuzugreifen.
Ich erhalte die folgende Fehlermeldung:
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>__build__/home</Key>
<RequestId>36941111717B2006</RequestId> <HostId>wfLt17lDjXhZLqCxRM2zOiDIJSF03/HKdL3V9Oeq3r1glowmlZpavRj0zzBzBgXlXZudiXoc=</HostId>
</Error>
Und meine S3 Eimer Umleitungsregeln sind wie folgt:
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>*/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>index.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
</RoutingRules>
Danke für die Antwort, ich bin noch einen Zweifel zum Beispiel Nehmen Sie mit, wenn die URL ist/blog oder /über und wenn wir die Seite aktualisieren, wird es zuerst durch index.html gehen und dann wird es die/blog oder/about-Seite laden. –
Bidyut
Ja das ist richtig, und wie SPA: s normalerweise funktionieren. Welches Verhalten wäre optimal? –
Bitte korrigieren Sie mich, wenn ich falsch liege, ist es möglich, die Seite direkt zu laden, ohne die index.html zu laden? Damit können wir die gewünschte Seite schnell laden lassen. – Bidyut