Я веду блог Jekyll на S3 и CloudFront. Установка документа по умолчанию на S3 работает нормально, и все подпапки изначально переходят в index.html.
В моем дистрибутиве CloudFront я установил корневой объект по умолчанию на index.html, но подкаталоги этого не получают - вместо этого я получаю следующую ошибку
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>about</Key>
<RequestId>F8324894C093EB53</RequestId>
<HostId>
Girhbo7YLEl9sxPS3KjvhbkpL32qNsYgiVLElAhPOvqrekfqfpJ/2AAYRg4rNJ+t4Imc86cjiw4=
</HostId>
</Error>
Если я вручную просматриваю домен / поддиректорию / index.html, он работает нормально.
Любые идеи?
При использовании корзины S3 с функцией хостинга веб-сайта (которая позволяет индексировать документы) вы не хотите использовать конечную точку REST корзины, что CloudFront предложит вам в консоли. Вместо этого вам нужно ввести конечную точку веб-сайта.
На странице «Создание распространения» в поле «Настройки источника» введите конечную точку хостинга статического веб-сайта Amazon S3 для вашего сегмента в поле «Имя домена источника», например:
example.com.s3-website-us-east-1.amazonaws.com
.Важный
Не выбирайте название вашей корзины из списка, например
example.com.s3.amazonaws.com
.http://docs.aws.amazon.com/gettingstarted/latest/swh/getting-started-create-cfdist.html
Вы также можете отключить конфигурацию корневого объекта по умолчанию в CloudFront. Это не требуется для этой настройки.
Помните, что вы можете кэшировать ответы об ошибках в течение нескольких минут после распространения изменения. Проверить X-Cache
и Age
заголовки ответов, чтобы определить, видите ли вы кэшированный ответ и как давно ответ был кэширован.