Префикс экспресс-виртуального пути не работает с приложением angular 6

Я размещаю свое приложение angular 6 с экспресс-статикой

app.use(express.static('/', __dirname +'/client/angular'));

Проблема возникла, когда я попытался добавить еще одну страницу на свой сервер в качестве целевой страницы. Поэтому я указал месячный путь «/ app» к моему угловому приложению.

app.use(express.static('/app', __dirname +'/client/angular'));

Это не работает! Когда я запускаю сервер, это вышло

ПОЛУЧИТЬ /приложение/ 304 4,294 мс - -

ПОЛУЧИТЬ /inline.bundle.js/ 404 1,065 мс - 15

ПОЛУЧИТЬ /polyfills.bundle.js/ 404 0,581 мс - 15

ПОЛУЧИТЬ /styles.bundle.js/ 404 2,195 мс - 15

ПОЛУЧИТЬ /vendor.bundle.js/ 404 2,119 мс - 15

ПОЛУЧИТЬ /main.bundle.js/ 404 1,830 мс - 15

ПОЛУЧИТЬ /favicon.ico 404 0,474 мс - 15

Я решил проблему с размещением новой веб-страницы в виртуальном пути «/home» и по умолчанию оставил мое угловое приложение размещенным в корневом пути.

app.use('/home', express.static(__dirname +'/client/landing'));
app.use('/', express.static(__dirname +'/client/angular'));

Но это не те маршруты, которые мне нужны, поэтому кто-нибудь знает, как смонтировать угловое приложение на экспресс-виртуальном пути?


person Felipe Toledo    schedule 23.11.2018    source источник


Ответы (1)


Покопавшись еще немного, я обнаружил, что мне нужно изменить файл index.html моего углового приложения в папке dist, созданной после запуска ng build. Проблема заключалась в том, что базовый href был «/», поэтому, когда ему понадобились файлы js, он их не нашел. Итак, все, что нам нужно сделать, это изменить его, указав тот же путь, по которому он был смонтирован на сервере.

  <base href="/app">
person Felipe Toledo    schedule 02.12.2018