У меня есть два проекта.Один был недавно закончен, другой находится в разработке.В проектах на данный момент я использую ту же реализацию WebMvcConfigurer, но проблема в том, что в одном проекте все статические ресурсы загружаются, а в секунде нет.Конфигурация полностью идентична.
Я использую addResourceHandlers (ResourceHandlerRegistry registry)
для обработки статических ресурсов.
Моя реализация WebMvcConfigurer:
@Configuration
public class McvConfig implements WebMvcConfigurer {
@Value("${upload.path}")
private String uploadPath;
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
}
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/img/**")
.addResourceLocations("file:///" + uploadPath + "/");
}
}
WebMvcConfigurer
из рабочего проекта.Как видите, они полностью совпадают.
Для отображения статического ресурса в настоящий момент я использую <img src="/img/${course.imgName}">
Моя реализация WebSecurityConfigurerAdapter
разрешена к использованиюресурсы без входа в аккаунт (.antMatchers("/", "/registration", "/activate/*", "/img/*").permitAll()
).
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private final UserService userService;
private final PasswordEncoder passwordEncoder;
public WebSecurityConfig(UserService userService, PasswordEncoder passwordEncoder) {
this.userService = userService;
this.passwordEncoder = passwordEncoder;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/registration", "/activate/*", "/img/*").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.rememberMe()
.and()
.logout()
.permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userService)
.passwordEncoder(passwordEncoder);
}
}
После запуска приложения на скриншоте видно, что картинки не отображаются.
Полученный исходный код страницы выглядит так: this .
Но при запуске другого приложения статические ресурсы обрабатываются .
Полученная страницаИсходный код выглядит как это .Как видите, используются те же статические ресурсы, что и в предыдущем проекте.
Пожалуйста, объясните, почему это не работает и как это исправить?Два дня мучаюсь и не могу понять.