Как развернуть приложение Angular.js?
Это может быть глупый вопрос, но мне интересно, какую платформу я должен использовать для развертывания моего приложения Angular.js? Я попытался использовать Heroku, но получил сообщение об ошибке "Отсутствие поддержки с помощью кедра". Любые мысли?
ОБНОВЛЕНИЕ
Я пытаюсь выполнить это в heorku как приложение Node.js, но все равно не могу заставить его работать. Там файл web-server.js в корневом каталоге моего приложения, и я ссылаюсь на него в моем Procfile здесь:
web: node web-server.js
И вот мой файл package.json, также в корневом каталоге:
{
"name": "medicare-data",
"version": "0.0.1",
"dependencies": {
},
"engines": {
"node": "0.10.x",
"npm": "1.2.x"
},
"respository": "medicare-data",
"author": "sararob"
}
Я получаю "ошибку компиляции пули" в моих журналах heroku. Мысли о том, почему это может не работать?
Ответы
Ответ 1
Вы можете запустить приложение Angular на герою, если оно будет использоваться как приложение node.js. Обычно, когда вы начинаете работать с семплами Angular, в проекте уже есть node веб-сервер script. Я считаю, что если в корне есть файл package.json, heroku обнаружит и запустит его как приложение node.js. Я вернусь и уточню этот ответ более подробно.
ОБНОВЛЕНИЕ
Из документов Heroku (и я не эксперт), он имеет этот проход после раздела развертывания: https://devcenter.heroku.com/articles/nodejs#visit-your-application
который в основном говорит вам убедиться, что у вас один динамический режим. Вы можете сделать это через веб-приложение под настройками своего приложения, или вы можете запустить это:
$ heroku ps:scale web=1
Чтобы убедиться, что процесс запущен, выполните
$ heroku ps
=== web: `node web.js`
web.1: up for 10s
Ответ 2
Бьюсь об заклад, если вы посмотрите на свои журналы, вы увидите что-то вроде этого:
2013-08-26T12:51:18.257006+00:00 heroku[web.1]: Starting process with command `node scripts/web-server.js`
2013-08-26T12:51:19.109974+00:00 app[web.1]: Http Server running at http://localhost:8000/
2013-08-26T12:51:34.369092+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path=/ host=cmwidget.herokuapp.com fwd="77.101.66.230" dyno= connect= service= status=503 bytes=
2013-08-26T12:52:19.445974+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Это означает, что ваше почтовое приложение Angular использует собственный порт (8000), и Heroku этого не допускает. Вам нужно отказаться от назначения номера порта в Heroku.
Легко фиксируется. Измените scripts/web-server.js
и измените это:
this.server.listen(port);
... к этому:
this.server.listen(process.env.PORT || port);
Ответ 3
Я изменил эту строку var DEFAULT_PORT = 8000;
в: var DEFAULT_PORT = process.env.PORT || 8000;
.. и затем это сработало.
Поэтому я считаю, что причина в том, что героику не нравится ваше приложение, работающее на порту 8000.