Веб-сервер Angular ориентирован на localhost: по умолчанию 4200.Это можно изменить с помощью пары параметров командной строки.--port
принимает порт, а --host
принимает IP-адрес хоста.
Таким образом, вы можете изменить скрипт ng serve следующим образом: ng serve --host [host-ip] --port [port-number] --disableHostCheck
.Этот последний флаг (--disableHostCheck
) указывает серверу dev обойти проверку хоста, когда обычно ng serve
не выполняется ни на чем, кроме localhost.Ужасная идея, если она предназначена для чего-либо, кроме частной разработки / тестирования.
Еще одна проблема: Heroku запускает веб-динамо, и, насколько я понимаю, они используют случайный порт и IP каждый раз.Хотя случайный порт хранится в переменной $ PORT, похоже, что IP не имеет аналогичной переменной.Веб-динамо хранят эту информацию при себе.
Heroku предлагает эту команду: heroku local web
.Он запускает ваше приложение на localhost: 5000.Это означает, что ng serve --port 5000
отлично работает с этой командой.Это должно сказать вам, как ваш интерфейс будет работать на Heroku.Ваш угловой сервер разработки тоже будет работать как положено.
Для фактического развертывания в Heroku используйте этот свой экспресс-сервер.Запустите ng build
из вашей файловой системы, и он выплюнет index.html
в папке dist
.Этот файл содержит все ваше интерфейсное приложение.Затем вы можете загрузить этот файл в браузер с сервера.
Для экспресса, который обычно разбивается на:
app.get('*', function(req, res) {
res.sendFile('path/to/index.html');
});
Надеюсь, это поможет!Дайте мне знать, если я где-то пропустил отметку.