Развертывание Angular на Линоде

У меня проблемы с развертыванием Angular 4 на Линоде.

Используя Angular-cli, у меня есть небольшое приложение Angular 4, которое просто отображает основную карту Google. Его можно найти здесь, и он отлично работает локально на Mac.

Linode настроен на работу с Fedora 25, и я могу в него войти.

Я установил имя хоста ofeyspi и клонировал репо на свой линод.

$ hostname
ofeyspi

Проверка того, что имя хоста было связано с URL,

$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
139.162.199.9 ofeyspi.qqiresources.com ofeyspi

Тогда я бегу:

$ ng build --prod --bh /root/beans3/dist/
 11% building modules 9/9 modules 0 activeTemplate parse warnings:                 
The <template> element is deprecated. Use <ng-template> instead ("
  <div class="card">
    [WARNING ->]<template ngFor let-panel [ngForOf]="panels">
      <div role="tab" id="{{panel.id}}-header" [attr.ar"): ng:///root/beans3/node_modules/@ng-bootstrap/ng-bootstrap/accordion/accordion.d.ts.NgbAccordion.html@2:4
Hash: 079970cfbabe6b2f710a                                                              
Time: 34065ms
chunk    {0} polyfills.a3e056f914d9748ff431.bundle.js (polyfills) 158 kB {4} [initial] [rendered]
chunk    {1} main.47083d1d3073f3856af7.bundle.js (main) 142 kB {3} [initial] [rendered]
chunk    {2} styles.604a57bc7d4c0f84e447.bundle.css (styles) 122 bytes {4} [initial] [rendered]
chunk    {3} vendor.244ceb2ee1e4bb317079.bundle.js (vendor) 1.39 MB [initial] [rendered]
chunk    {4} inline.df954263324e7c133385.bundle.js (inline) 0 bytes [entry] [rendered]

Как вы можете видеть, это приводит к ошибке, проблема с элементом шаблона, который можно игнорировать при разработке, но мне интересно, что то же самое для производства.

Это создает новый каталог dist, а затем я запускаю,

$ ng server --host qqiresources.com

и я тоже пытался,

$ ng server --host 139.162.199.9
** NG Live Development Server is running on http://139.162.199.9:4200 **
Hash: 2391cafc7c903540029f                                                              
Time: 17824ms
chunk    {0} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 158 kB {4} [initial] [rendered]
chunk    {1} main.bundle.js, main.bundle.js.map (main) 10.5 kB {3} [initial] [rendered]
chunk    {2} styles.bundle.js, styles.bundle.js.map (styles) 150 kB {4} [initial] [rendered]
chunk    {3} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.67 MB [initial] [rendered]
chunk    {4} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered]
webpack: Compiled successfully.

Когда я перехожу на http://qqiresources.com:4200/ или http://139.162.199.9:4200/ я получаю сообщение об ошибке подключения.

"Этот сайт не может быть достигнут"

Консоль показывает,

Failed to load resource: net::ERR_CONNECTION_REFUSED

Я попытался запустить вторую команду как внутри каталога dist, так и в корневом каталоге проектов.

Есть что-то еще, что мне не хватает?

ОБНОВЛЕНИЕ: теперь я вижу, что сервер ng неверен, поэтому я установил узел и перешел в каталог dist, где я запускаю http-сервер,

$ http-server
Starting up http-server, serving ./
Available on:
  http://127.0.0.1:8080
  http://139.162.199.9:8080
Hit CTRL-C to stop the server

Но при переходе по http://139.162.199.9:8080/ появляется то же сообщение "Сайт не может быть достигнут".

Спасибо

ОБНОВЛЕНИЕ: у меня есть apache 2, работающий и обслуживающий файл index.html в каталоге dist. Однако, похоже, возникают проблемы с использованием других файлов в dist. Я разместил вопрос об этом Запуск Angular-Cli на Apache 2

1 ответ

Решение

Я не знаю много о линоде. Но вы никогда не должны запускать 'ng serve' в производстве. Почему бы не обслуживать папку dist статически через сервер apache, nginx или рабочий узел. Вот как большинство угловых приложений обслуживаются в производстве.

Другие вопросы по тегам