AWS S3 Статическое соединение: правила маршрутизации не работают с облачным фронтом - PullRequest
0 голосов
/ 31 октября 2018

Я использую статический веб-хостинг AWS S3 для своего приложения VueJs SPA. Я настроил правила маршрутизации в S3, и он прекрасно работает, когда я получаю к нему доступ через статический URL-адрес S3. Но я также настроил CloudFront для использования с моим пользовательским доменом. Так как одностраничные приложения нужно маршрутизировать через index.html, я настроил пользовательскую страницу ошибок в cloudfront, чтобы перенаправить 404 ошибки в index.html. Так что теперь правила маршрутизации, которые я установил в S3, больше не работают.

Каков наилучший способ заставить правила маршрутизации S3 работать вместе с пользовательской настройкой страницы ошибок CloudFront для SPA?

1 Ответ

0 голосов
/ 08 февраля 2019

Я думаю, что немного опоздал, но все равно,

Очевидно, вы не можете этого сделать, если вы используете конечные точки S3 REST_API (example-bucket.s3.amazonaws.com) в качестве источника для вашего дистрибутива CloudFront, вы должны использовать URL-адрес веб-сайта S3, предоставленный S3, в качестве источника (пример- bucket.s3-website- [область] .amazonaws.com). Кроме того, объекты должны быть общедоступными, вы не можете заблокировать свое хранилище в соответствии с политикой происхождения.

Итак,

  • Объекты должны быть публичными.
  • Опция веб-сайта S3 Bucket должна быть включена.
  • Источник распространения должен исходить от URL-адреса веб-сайта S3, а не от конечной точки остальных API.

EDIT:

Я ошибался, на самом деле, вы можете сделать это и с конечной точкой REST_API, вам нужно только создать Пользовательский ответ на ошибку внутри вашего дистрибутива CloudFront, вероятно, только для кодов ошибок 404 и 403, установите параметр " Настроить ответное сообщение об ошибке " в значение "да", Путь к странице ответа в "/index.html" и Код ответа HTTP в "200". Вы можете найти эту опцию в вашем дистрибутиве и на вкладке страниц ошибок, если вы используете консоль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...