Можно ли использовать amazon s3 для обслуживания приложения angular 2 без использования выделенного сервера. Если да, то как действовать?
Как обслуживать angular 2, используя amazon s3
Ответ 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 для указания - это невозможно сделать без дополнительных параметров командной строки.