Vaadin Flow .war stati c ресурсы в IntelliJ IDEA - PullRequest
0 голосов
/ 17 июня 2020

Контекст

У меня есть проект Vaadin Flow Spring Boot, использующий Vaadin 14 в режиме совместимости, который упакован в виде исполняемого файла .war с использованием Gradle (то есть с плагином Gradle war). У меня есть ресурсы c, которые находятся в src/main/webapp/frontend/styles. Я пока использую режим разработки. Из-за других ограничений я не могу отключить режим совместимости в обозримом будущем.

Я знаю, что эта страница советует использовать src/main/resources/META-INF/resources для проектов Spring, но это, вероятно, потому, что Spring По умолчанию при загрузке используется макет .jar. Для макетов .war stati c ресурсы должны go в (подпапках) src/main/webapp.

Создание файла .war с использованием gradle, а затем его запуск вне IDE (IntelliJ IDEA), все в порядке .

Проблема

Запуск службы Spring Boot в IntelliJ IDEA, stati c ресурсы из src/main/webapp не найдены. Все запросы возвращают 404 с аналогичным сообщением:

Could not navigate to 'frontend/styles/images/logo.png'
Reason: Couldn't find route for 'frontend/styles/images/logo.png'

Available routes:
  . <root>
  . ... (listing routes for all my application views)

This detailed message is only shown when running in development mode.

Вещи, которые я пробовал для отладки этого

Я попытался разместить некоторые ресурсы непосредственно в src/main/webapp, потому что я знаю, что Ваадин делает специальные вещи с папкой frontend, но они дают ту же ошибку.

Если я изменю файл сборки, чтобы использовать макет jar, и переместить файлы в src/main/resources, все в порядке. К сожалению, из-за других ограничений мне нужно сохранить макет war.

Я создал простое приложение Spring Boot, отличное от Vaadin, с макетом war, и у него нет проблем с обслуживанием stati c ресурсы из src / main / webapp при запуске внутри Intellij IDEA. Похоже, Ваадин не понимает, что я запрашиваю ресурс stati c вместо маршрута, возможно потому, что он не понимает, что используется макет war.

...