Проблема с упаковкой Angular Spring Boot

У меня есть текущая структура проекта для углового проекта с весенней загрузкой

+--app-ui
|--+--src
|--+--dist
|--app-backend
|--+--src
|--+--+--main
|--+--+--+--resources
|--+--+--+--+--static
|--+--+--+--java

app-ui содержит код angular 6, бэкэнд приложения содержит код загрузки Spring. Теперь каждый раз, когда я создаю app-ui, я хочу, чтобы содержимое папки dist в app-ui копировалось в app-backend / src / main / resources / static.

Для этого я добавил эти строки в угловую сборку

"predeploy": "rimraf ../app-backend/src/main/resources/static/ && mkdirp ../app-backend/src/main/resources/static",

"deploy": "copyfiles -f dist/** ../app-backend/src/main/resources/static/

Это создает статическую папку внутри проекта загрузки Spring, но не копирует файлы и папки внутри папки dist.

0
0
711
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы используете AngularCLI (с файлом angular.json), просто измените свойство outputPath, указав желаемый статический каталог.

"outputPath": "../app-backend/src/main/resources/static"

Спасибо. Это намного проще, чем настройка в spring boot pom.xml

ARods 18.05.2019 02:34

Я пробовал этот способ интеграции моего углового приложения с spring -boot, чтобы статический код был по крайней мере в пути к весеннему загрузочному приложению. Но я все еще не мог видеть пользовательский интерфейс, когда мое приложение Spring работает на порту 8080.
Не уверен, что я что-то упускаю, но большая часть моего внешнего кода отсутствует; Компоненты ng .ts, .html и .css находятся в каталоге frontend / src, который я никуда не перемещал. Какие-либо предложения?

Ваш контроллер возвращает index.html?

Swastik 29.08.2018 21:55

@Swastik Я не думаю, что мне нужен контроллер для возврата index.html, хотя и не уверен. Поскольку index.html теперь уже находится на пути к приложению spring -boot (/ resources / static dir), поэтому не создавал никакого контроллера специально для этого.

anonymous-explorer 31.08.2018 05:02

вам нужен контроллер индекса, который возвращает index.html.

Swastik 31.08.2018 05:30

Маршрутизация будет обрабатываться angular оттуда

Swastik 31.08.2018 05:30

@Swastik, спасибо, что указали. Я создал контроллер, но не вижу пользовательского интерфейса, за исключением того, что я вижу напечатанную строку «index.html», которую я возвращаю в контроллере. Я вижу угловой значок на вкладке Chrome, что означает, что он может правильно указывать, но index.html почти ничего не имеет. В теге body упоминается корневой угловой компонент. Вот точная проблема, если бы вы могли помочь. stackoverflow.com/questions/52079379/…

anonymous-explorer 03.09.2018 03:00

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