У меня есть статический веб-сайт с одной страницей, который размещен в ковше AWS. Приложение - это JavaScript.Приложение для одиночной страницы в AWS CloudFront
У меня есть настройка Cloudfront для предоставления контента. Содержимое веб-сайта размещено в ведомости AWS S3, а Cloudfront используется для более быстрой доставки веб-контента для пользователей в разных местах.
Но после создания веб-сайта у меня возникла проблема. Если я обновляю страницу, это вызовет ошибку, поскольку ключ отсутствует. Я не могу обновить страницу или скопировать URL-адрес и вставить его на другую вкладку в браузере для доступа к той же странице.
Я получаю следующее сообщение об ошибке:
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>__build__/home</Key>
<RequestId>36941111717B2006</RequestId> <HostId>wfLt17lDjXhZLqCxRM2zOiDIJSF03/HKdL3V9Oeq3r1glowmlZpavRj0zzBzBgXlXZudiXoc=</HostId>
</Error>
И мои правила S3 ведра Перенаправление следующим образом:
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>*/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>index.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
</RoutingRules>
Спасибо за ответ, я имею еще одно сомнение Возьмем, к примеру, если URL это/blog или /about, и когда мы обновляем страницу, она сначала просматривает index.html, а затем загружает страницу/blog или/about. –
Bidyut
Да, это правильно, и как работает SPA: как правило. Какое поведение было бы оптимальным? –
Пожалуйста, исправьте меня, если я ошибаюсь, можно ли загружать страницу напрямую, не загружая index.html? Чтобы мы могли быстро загружать запрошенную страницу. – Bidyut