Как обслуживать angular 2, используя amazon s3

Можно ли использовать amazon s3 для обслуживания приложения angular 2 без использования выделенного сервера. Если да, то как действовать?

Ответ 1

Это возможно. Но тогда вы должны использовать webpack.

После настройки вашего приложения для работы с webpack вы можете npm run build и загрузить обработанные файлы в S3 как статический веб-сайт.

Ответ 2

Да, вы можете развернуть приложение на AmazonS3, но вы не должны его обслуживать напрямую с Amazon S3: S3 - это служба хранения, а не служба распространения. Вот почему вы должны создать дистрибутив CloudFront для своего ведра S3.

Шаги:

  • Создайте приложение с помощью npm run build --prod (будьте осторожны с включением опции --prod!)

  • Создайте дистрибутив CloudFront для своего ковша Amazon S3 и установите Default Root Object на index.html

  • Если вы используете url rewrite и не hash strategy (ваши пути выглядят как http://yourwebsite/login, а не http://yourwebsite/#/login создают настраиваемый ответ об ошибке для вашего дистрибутива CloudFront со следующим:

    • Код ошибки HTTP: 404

    • Ошибка кэширования Минимальный TTL (в секундах): 0

    • Настроить ответ об ошибке: Да
    • Путь к странице ответа:/index.html
    • Код ответа HTTP: 200

Также необходимо проявлять осторожность при развертывании приложения на Invalidate index.html на CloudFront, иначе старая версия будет кэширована и будет отправлена ​​клиенту.

Пожалуйста, следуйте моему руководству для более подробной информации.

Ответ 3

Нет, запустить angular2 невозможно с помощью amazon s3 без выделенного сервера. Согласно Angular2 Docs, для запуска этих файлов требуется как минимум небольшой сервер. Что вы можете сделать, это запустить NodeJs-сервер на E3 или ESB и развернуть там приложение angular2.

Благодаря @Gunter для указания - это невозможно сделать без дополнительных параметров командной строки.