Как мне обслуживать индекс. html в подпапках с помощью S3 / Cloudfront? - PullRequest
2 голосов
/ 07 января 2020

Получил ведро под названием www.foo.site. На этом сайте есть целевая страница, страница о программе и несколько страниц в нескольких bar/* папках. Каждый bar/* имеет индекс. html страница: bar / a / index. html, bar / b / index. html et c.

Целевая страница работает нормально (имеется в виду, что www.foo.site будет загружаться, когда я к ней перехожу), но страница /about/index.html и /bar/index.html страницы не обслуживаются, когда я нажимаю на мои ссылки about et et c. Если я curl получаю URL-адреса 404. Я попытался задать исходный путь и имя исходного домена отдельно:

Первая попытка:

domain name: www.foo.site.s3.amazonaws.com
origin path: (blank)

Вторая попытка:

domain name: s3-us-west-1.amazonaws.com
origin path: www.foo.site

Документом по умолчанию является индекс. html для обоих.

Никто не работал. Все страницы S3, упомянутые выше, доступны для прямого просмотра. Значение https://s3-us-west-1.amazonaws.com/www.foo.site/bar/index.html загружает ожидаемое html.

Это должно быть какой-то настройкой Cloudfront, которую я пропускаю. Возможно, что-то в моих записях DNS? Можно ли обслуживать html файлы в «папках» S3 через Cloudfront?

1 Ответ

0 голосов
/ 08 января 2020

Вот несколько ресурсов, которые полезны при обслуживании индекса. html из S3 неявно через https://domain/folder/ вместо необходимости явно использовать https://domain/folder/index.html:

Кажется, что ключ при настройке вашего дистрибутива CloudFront:

не настраивайте объект root по умолчанию для вашего дистрибутива CloudFront

Если вы сконфигурируете индекс. html как По умолчанию root объект тогда https://domain/ будет правильно обслуживать https://domain/index.html, но никакие ссылки на подпапки, такие как https://domain/folder/ не будут работать.

Также важно, чтобы не использовал раскрывающийся список в Cloudfront, когда соединяя распределение CF с ведром S3. Вместо этого вам нужно использовать URL для сайта S3 stati c.

...