Angular сборка установленной цели для фрагментированных / перенесенных файлов - PullRequest
0 голосов
/ 11 февраля 2020

Мы используем angular 6.

Я хочу создать другое приложение angular и поместить его в тот же домен, вот пример example.com - основное приложение, мое новое приложение будет размещаться на example.com/app2/

Вот как выглядит моя apache конфигурация

<VirtualHost>

ServerName example.com

...

ProxyPass /app2/ http://app2-server:4200/
ReverseProxyPass /app2/ http://app2-server:4200/

ProxyPass / http://main-app-server:4200/
ReverseProxyPass / http://main-app-server:4200/

...

</VirtualHost>

Теперь, когда я пытаюсь получить доступ к новому приложению, возникает проблема с загрузкой файлов, потому что * Приложение 1037 * вставит в индекс следующие файлы. html main.js vendor.js styles.js et c.

Теперь запрос main.js из example.com/app2/ будет go в example.com/main.js потому что angular процесс сборки автоматически добавляет main.js в индекс. html

Можно ли сказать angular, что вместо добавления <script type="text/javascript" src="main.foo.js"></script> моему приложению нужно добавить <script type="text/javascript" src="/app2/main.foo.js"></script>

Я понимаю, что это можно сделать в процессе сборки. Но это не единственные файлы. Есть чанки, которые веб-пакет ссылается и загружает динамически. Эти ссылки тоже должны измениться.

Также разработчики используют dev-сервер, а не поток сборки. Таким образом, это изменение пути также должно быть частью dev-build.

Так что вопрос в том, есть ли способ задать путь для этих автоматически сгенерированных файлов (включая куски веб-пакета)?

PS Я использую angular 6, но app2 можно обновить до angular 9 / 10.

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете просто добавить

ng build --prod --base-href /app2/

в вашу команду сборки, или я уверен, что вы можете настроить это в angular. json в build.options.baseHref

Что касается сервера разработки, я не уверен, почему это будет иметь значение. Поэтому мне нужно больше подробностей о том, что вы пытаетесь выполнить sh. Если вы надеетесь запустить два проекта одновременно, это совсем другая история, поскольку у вас не может быть двух локальных серверов, прослушивающих 4200.

...