Size: a a a

Spring Framework and more

2019 May 23

PG

Pavel Golov in Spring Framework and more
Всем привет. Кто знает, помогите пожалуйста с вопросом о spring boot и мультимодульном maven проекте https://stackoverflow.com/questions/56274228/why-static-content-from-maven-dependency-served-in-spring-boot
источник

AT

Aurdo The Shalomander in Spring Framework and more
источник

AT

Aurdo The Shalomander in Spring Framework and more
By default, Spring Boot serves static content from a directory called /static (or /public or /resources or /META-INF/resources) in the classpath or from the root of the ServletContext. It uses the ResourceHttpRequestHandler from Spring MVC so that you can modify that behavior by adding your own WebMvcConfigurer and overriding the addResourceHandlers method.
источник

PG

Pavel Golov in Spring Framework and more
Тут согласен, но как spring boot понимает, что именно из депенденси frontend.jar нужно подтянуть статику? В модуле со спринг приложением в ресурсах у меня вообще нету папки static
источник

AT

Aurdo The Shalomander in Spring Framework and more
Pavel Golov
Тут согласен, но как spring boot понимает, что именно из депенденси frontend.jar нужно подтянуть статику? В модуле со спринг приложением в ресурсах у меня вообще нету папки static
А как приложуха билдится?
источник

PG

Pavel Golov in Spring Framework and more
сначала билдится модуль frontend, создается джарник frontend.jar, в котором и лежит статик (на stackoverflow его содержимое), далее билдится модуль со спринг бутовым приложением, к которому в качестве зависимости и подкладывается этот джарник
источник

PG

Pavel Golov in Spring Framework and more
https://blog.jdriven.com/2016/12/angular2-spring-boot-getting-started/ вот по этому примеру делал проект, тут можно посмотреть помники
источник

PB

Pavel Bukhmatov in Spring Framework and more
Pavel Golov
сначала билдится модуль frontend, создается джарник frontend.jar, в котором и лежит статик (на stackoverflow его содержимое), далее билдится модуль со спринг бутовым приложением, к которому в качестве зависимости и подкладывается этот джарник
У тебя в конфиге ангуляра (angular.json) не стандарный путь, а
"outDir": "../../../target/frontend"

А в конфиге бекенда эта директория добавляется в ресурсы
<resources>
           <resource>
               <directory>target/frontend</directory>
               <targetPath>static</targetPath>
           </resource>
       </resources>
источник

PG

Pavel Golov in Spring Framework and more
Часть с копированием ресурсов это в конфиге фронта
источник

PG

Pavel Golov in Spring Framework and more
Мы копируем папку билд англяра в таргет фронта, чтобы она в конечном итоге попала в джарник frontend.jar
источник

PB

Pavel Bukhmatov in Spring Framework and more
Pavel Golov
Мы копируем папку билд англяра в таргет фронта, чтобы она в конечном итоге попала в джарник frontend.jar
хм..
Кажется оно работает так:
- Собирается фронтенд, он всю статику добавляется в папочку target/frontend.
- Далее поскольку в помнике прописан resource, эти данные копируются в папку static
- Далее собирается бекенд. Все что находится в lib добавляется в класспас.
- В частности в класспасс добавляется папка static из frontend.jar
- поскольку бекенд никак дополнительно не сконфигурирован, а папки static в бекенде нет, он использует не "root of the ServletContext", как написано в документации, а папку "static" из класспаса. А в ней есть index.html, который грузит за собой ангуляр.

Я ради эксперимента и подтверждения гипотезы добавил в backend папку
resources/static/index.html
И все сломалось :D
index.html отдается с бекенда. Индекс из jar'ика фронта больше не отдается
источник

PB

Pavel Bukhmatov in Spring Framework and more
Иными словами, если у тебя в 2 jar'иках будет папка static/index.html, ты получишь ситуацию, когда index.html будет отдаваться тот, который быстрее найдется в класспасе)

Интересно что произойдет, если положить не в static, а в /public или в /META-INF/resources. Кто кого обгонит)
источник

PG

Pavel Golov in Spring Framework and more
Звучит правдоподобно, спасибо большое за ответ, прояснили ситуацию)
источник
2019 May 24

G

GamerX in Spring Framework and more
Товарищи, я тут с JQ не работал. Вопрос такой, код
    $('.popUpWrapper').parent('.popUp').addClass('.okdpPopUp');
источник

S🕶

Sander 🕶 in Spring Framework and more
ну в паретн класс видимо добавляешь
источник

G

GamerX in Spring Framework and more
заставляет браузер зависнуть.
Суть в том чтобы добавить класс стиля okdpPopUp, перекрывающий стиль popUp, в классе popUpWrapper
источник

S🕶

Sander 🕶 in Spring Framework and more
мне кажется проблема в чем-то другом, не должно зависать
источник

MY

Mikhail Yandimirov in Spring Framework and more
Судя по доке https://api.jquery.com/parent/ ты добавишь класс ‘.okdpPopUp’ во всех родителей элементов, у которых есть класс ‘.popUp’
источник

MY

Mikhail Yandimirov in Spring Framework and more
А нет, я не так прочитал. Вроде норм все
источник

G

GamerX in Spring Framework and more
Нашёл почему зависало. Ковычки были не те. Однако теперь просто не добавляет класс
источник