8

Mam statyczną stronę Pojedynczej strony, która jest hostowana w segmencie AWS. Aplikacja jest JavaScript.Aplikacja jednej strony w AWS CloudFront

Mam zainstalowany serwer Cloudfront do dostarczania treści. Zawartość witryny jest przechowywana w Wiadro AWS S3, a Cloudfront służy do szybszego dostarczania treści internetowych dla użytkowników w różnych lokalizacjach.

Ale po skonfigurowaniu strony internetowej mam do czynienia z problemem. Jeśli odświeżę stronę, spowoduje to błąd, ponieważ klucz nie jest obecny. Nie mogę odświeżyć strony lub skopiować adresu URL i wkleić go w innej karcie przeglądarki, aby uzyskać dostęp do tej samej strony.

otrzymuję następujący błąd:

<Error> 
    <Code>NoSuchKey</Code> 
    <Message>The specified key does not exist.</Message> 
    <Key>__build__/home</Key> 
    <RequestId>36941111717B2006</RequestId> <HostId>wfLt17lDjXhZLqCxRM2zOiDIJSF03/HKdL3V9Oeq3r1glowmlZpavRj0zzBzBgXlXZudiXoc=</HostId> 
</Error> 

A moje zasady wiadra S3 przekierowania są następujące:

<RoutingRules> 
    <RoutingRule> 
     <Condition> 
      <KeyPrefixEquals>*/</KeyPrefixEquals> 
     </Condition> 
     <Redirect> 
      <ReplaceKeyWith>index.html</ReplaceKeyWith> 
     </Redirect> 
    </RoutingRule> 
</RoutingRules> 

Odpowiedz

8

Jeśli pojedyncza strona strona Prawidłowo obsługuje 404 może po prostu zastąpić domyślny CloudFront ustawienia z niestandardową stroną błędu dla twojej dystrybucji, która następnie jest twoją index.html.

Można to skonfigurować w zakładce Error Pages dla swojej dystrybucji i będzie to wyglądać mniej więcej tak:

enter image description here

+0

Dzięki za odpowiedź, mam jeszcze jedną wątpliwość Weźmy na przykład jeśli adres URL jest /blog lub /o, a kiedy odświeżymy stronę, najpierw przejdzie przez index.html, a następnie załaduje stronę/blog lub/o. – Bidyut

+0

Tak, to prawda, i jak SPA: zwykle działają. Jakie zachowanie byłoby optymalne? –

+0

Proszę mnie poprawić, jeśli się mylę, czy możliwe jest załadowanie strony bezpośrednio bez ładowania pliku index.html? Abyśmy mogli szybko załadować żądaną stronę. – Bidyut