package de.ph87.homeautomation.web; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.resource.PathResourceResolver; import java.io.IOException; @Configuration @RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedOrigins("*").allowedMethods("*"); } @Override public void addResourceHandlers(final ResourceHandlerRegistry registry) { registry .addResourceHandler("/**") .addResourceLocations("classpath:/resources/") .resourceChain(true) .addResolver(new PathResourceResolver() { protected Resource getResource(String resourcePath, Resource roomLocation) throws IOException { Resource requestedResource = roomLocation.createRelative(resourcePath); return requestedResource.exists() && requestedResource.isReadable() ? requestedResource : new ClassPathResource("/resources/index.html"); } }); } }