Как изменить пути к ресурсам при генерации пакета angular-cli css?

Описание

В нашем проекте angular, основанном на веб-пакете, мы используем следующий конвейер развертывания:
1. Генерируем все статические ресурсы в статическую папку
2. Генерируем индексный html
3. Разворачиваем статические ресурсы на «Статический сервер» (сегмент S3)
4. Разверните index.html на "Главном сервере"

Папка Dist выглядит так:

dist  
--static  
----anivers-bold.eot  
----logo.svg  
----styles.bundle.css  
----code.bundle.js  
--index.html  

А ссылки на ресурсы в index.html выглядят так:
<script src="http://127.0.0.1:4200/code.bundle.js"></script>

Итак, теперь я сгенерировал аналогичную структуру и index.html, но ссылки в styles.bundle.css на настройки шрифтов и изображений неверны.
Текущее: src: url('anivers-bold.eot');
Ожидаемое: src: url('http://127.0.0.1:4200/anivers-bold.eot');

Кто-нибудь знает, как я могу изменить пути к ресурсам при создании пакета angular-cli css?

Что я пытаюсь

Вы можете найти тестовое приложение в тестовом репозитории. Используйте ng build для тестовой сборки

Я погрузился в angular-cli и нашел плагин postcss, который обрабатывает ресурсы: node_modules\@angular-devkit\build-angular\src\angular-cli-files\plugins\postcss-cli-resources.js

Я пытаюсь использовать параметр resourcesOutputPath, но он создает только каталоги. Также я пытаюсь изменить href в теге base, но в этом случае угловой маршрутизатор ломается.


person Sergei Aksenov    schedule 22.08.2019    source источник


Ответы (1)


Я нашел следующее решение:
В файле .css, который был получен с удаленного сервера, ресурсы запрашиваются с этого сервера
Итак, нам нужно извлечь стили с ресурсами (background-url, font) в глобальных стилях и все будет работать

person Sergei Aksenov    schedule 05.09.2019