Ответ 1
Это возможно. Но тогда вы должны использовать webpack.
После настройки вашего приложения для работы с webpack вы можете npm run build
и загрузить обработанные файлы в S3 как статический веб-сайт.
Можно ли использовать amazon s3 для обслуживания приложения angular 2 без использования выделенного сервера. Если да, то как действовать?
Это возможно. Но тогда вы должны использовать webpack.
После настройки вашего приложения для работы с webpack вы можете npm run build
и загрузить обработанные файлы в S3 как статический веб-сайт.
Да, вы можете развернуть приложение на 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
Также необходимо проявлять осторожность при развертывании приложения на Invalidate index.html на CloudFront, иначе старая версия будет кэширована и будет отправлена клиенту.
Пожалуйста, следуйте моему руководству для более подробной информации.
Нет, запустить angular2 невозможно с помощью amazon s3 без выделенного сервера. Согласно Angular2 Docs, для запуска этих файлов требуется как минимум небольшой сервер. Что вы можете сделать, это запустить NodeJs-сервер на E3 или ESB и развернуть там приложение angular2.
Благодаря @Gunter для указания - это невозможно сделать без дополнительных параметров командной строки.