Проблема с корректным расположением файла при сборке Maven
У меня есть проект на Spring Boot и у меня вопрос по поводу путей до View
@EnableWebMvc
@Configuration
public class SpringWebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/ui/**").addResourceLocations("classpath:/front/");
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/ui/").setViewName("forward:/ui/index.html");
registry.addViewController("/ui").setViewName("forward:/ui/index.html");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Bean
public InternalResourceViewResolver viewResolver() {
return new InternalResourceViewResolver();
}
}
Здесь есть метод addViewControllers, который, как я понимаю, делает сопоставление урла /ui и /ui/ с index.html, но есть некоторая проблема: где должна находиться страница index.html? Просто самой страницы index.html не существует в папке resources в Spring приложении, так как она относится к React и присутствует только при сборке .jar файла. Можете подсказать куда именно в .jar файле нужно помещать эту страницу, чтобы при обращении к localhost:8080/ui/ у меня эта страница корректно отображалась? На данный момент в папке target нечто такое (index.html как раз таки располагается в target/classes/static/ui/):
Ответы (1 шт):
Что находило index.html по пути /ui/index.html из target/classes/static/ui нужно задать конфигурацию:
registry.addResourceHandler("/ui/**").addResourceLocations("classpath:/static/ui/");
Все что в target/classes попадает в корень собранного jar-a, а все содержимое jar-a, находится в classpath.
