Поточна команда: ng serve --host --public $IP:$PORT
Результати на моєму веб-сайті:
Недійсний заголовок хосту
Відповіді:
--disable-host-check
Прапор працює відмінно , якщо вам потрібно працювати з Cloud9.
Я використовую таку команду:
ng serve --open --host $IP --port $PORT --disable-host-check
--disable-host-check
ви отримаєте попередження в консолі. WARNING: Running a server with --disable-host-check is a security risk. See
medium.com/webpack/… для отримання додаткової інформації.
Вам потрібно вказати хоста
ng serve --port 8080 --host 123.34.56.78
Див. Цю проблему
Відредагуйте наступний рядок у
node_modules/webpack-dev-server/lib/Server.js
(рядок 425), змініть на:return true;
Я використовую Cloud9 IDE потім запустіть:
ng serve --port 8080 --host 0.0.0.0
. Зараз працює нормально.
ng serve --host 0.0.0.0 --disable-host-check
Це працює для мене:
ngrok http --host-header=rewrite PORT
наприклад :
ngrok http --host-header=rewrite 4200
У моєму випадку я використовую ім’я хосту для оновлення файлу / etc / hosts.
vi /etc/hosts
і додайте останній рядок імені хосту.
127.0.0.1 myHostName.com
для підключення мого сервера,
ng serve -o
Під час підключення до myHostName.com:4200 сталася помилка .
так, мені сподобалось це,
ng serve --host 0.0.0.0 --disableHostCheck true
Повторне підключення до myHostName.com:4200 :)
Використання команди нижче працює для мене.
ng serve --host 0.0.0.0 --port 8080 --public ipAddress
У angular.json додайте наступне в розділі архітектор -> подати -> параметри
"disableHostCheck": true
Отримав відповідь із цієї сторінки випуску Github
ng serve
(і, мабуть, хочете в процесі розробки)
Я зіткнувся з такою ж помилкою після розгортання мого кутового додатка на екземплярі AWS EC2, що має зображення bitnami. Потім я запустив свою програму за допомогою команди нижче, і вона працювала нормально.
ng serve --host 0.0.0.0 --port 8080 --disableHostCheck true
Протестовано на нижченаведеній версії Angular та сервері Amazon.
Angular CLI: 6.0.8
Node: 8.11.3
OS: linux x64
Angular: 5.2.8
Параметри команди ng змінено, тепер використовуйте configuration
замість env
. Команда, яка спрацювала для мене, є
ng serve --configuration=dev --port 4009 --host 0.0.0.0 --publicHost myhost.com
Ніколи не використовуйте --disable-host-check
на загальнодоступному сервері. Angular попередить вас, якщо ви використовуєте це. Це може спрацювати, але це серйозна проблема безпеки. Ви отримаєте це повідомлення, якщо будете використовувати цей прапор.
ПОПЕРЕДЖЕННЯ: Запуск сервера із --disable-host-check є ризиком для безпеки. Для отримання додаткової інформації див. Https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a .
Приділіть трохи часу, щоб прочитати цю статтю, яку варто прочитати.
ng serve --host 0.0.0.0 --public-host sub.myhost.com
Це насправді було вирішено в одному з відео-коментарів YouTube завдяки Матеушу Саві
Йди сюди, щоб перевірити це.
- вкажіть хост у package.json більше не працює -
лише для того, щоб зауважити, що не потрібно використовувати команду, яка була використана у відео, наведених нижче інструкцій достатньо, щоб програма працювала за допомогою звичайних angular-cli
розробки
спочатку потрібно знайти хостів у etc / папці
набирайте cd ..
в консолі, доки не дійдете до кореня машини Linux і завжди перевіряйте за допомогоюls
те, що в списку
якщо ви бачите файл hosts , то ви знаходитесь у потрібному місці, а потім використовуєтеsudo vi hosts
для редагування
додати рядок нижче всіх ip-адрес "0.0.0.0 yourworkspace-yourusername.c9users.io " (без лапок, звичайно :-))
також у package.json змініть "start": "ng serve -H yourworkspace-yourusername.c9users.io "
тоді вам просто потрібно перейти в папку програми та запустити програму в терміналі за допомогою npm start
перевірив це зараз, і це спрацювало
Зверніться до: https://github.com/angular/angular-cli/issues/6070
використовувати державний прапор. наприклад:ng serve --host <workspace>-<username>.c9users.io --public
Вам слід просто змінити 0.0.0.0 на локальну IP-адресу, наприклад 192.168.1.42, і вона повинна працювати.
ng serve --host 192.168.1.42
Річ у тім, що ви можете отримати доступ лише до посилання, яке ви вказали в --public параметрі. У моєму випадку я надав IP-адресу в --public і намагався отримати доступ до неї за допомогою домену, який я зареєстрував проти цього IP. Але ng пов'язує його з єдиним хостом, що надається в --public.
Щоб вирішити цю проблему, я поставляється ще один параметр: disable-host-check
. Виконайте команду:ng serve --disable-host-check --host 0.0.0.0 --port 3100 --public x.x.x.x
Щоб дізнатись більше, натисніть тут
Я отримав цю помилку під час спроби отримати доступ до нашого додатку за допомогою localtunnel
утиліти.
Пропозиція @tarn (з коментаря до прийнятої відповіді) додати --disableHostCheck true
до ng serve
команди зробила свою справу.
Ось рішення, якщо хтось все ще застряг invalid host header
проблемі:
Запустіть ng eject
це створить webpack.config.js
. Біжи, npm install
якщо просить. Додати нижче , "disableHostCheck":true
щоб devServer
в webpack.config.js
. Як нижче:
"devServer": {
"historyApiFallback": true,
"disableHostCheck" : true //<-- add this line
}
Потім у варіанті package.json
зміни файлу start
під ng
таким
"start": "webpack-dev-server --host 0.0.0.0 --port YOURPORT --public YOURIP:YOURPORT"
Тепер запустіть angular за допомогою npm start
команди. Це воно.
Змініть рядок 425 у файлі "node_modules / webpack-dev-server / lib / Server.js" з false на true. тобто
До: повернути false;
Оновлено: повернути true;