diff --git a/src/main/java/org/minager/core/config/WebConfiguration.java b/src/main/java/org/minager/core/config/WebConfiguration.java new file mode 100644 index 0000000..d74e0ba --- /dev/null +++ b/src/main/java/org/minager/core/config/WebConfiguration.java @@ -0,0 +1,34 @@ +package org.minager.core.config; + +import java.io.IOException; + +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.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.resource.PathResourceResolver; + +/** + * This configuration class serves Angular app if the url isn't available in sprint REST module. + * + * @author florian + * + */ +@Configuration +public class WebConfiguration implements WebMvcConfigurer { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**/*") + .addResourceLocations("classpath:/static/") + .resourceChain(true) + .addResolver(new PathResourceResolver() { + @Override + protected Resource getResource(String resourcePath, Resource location) throws IOException { + Resource requestedResource = location.createRelative(resourcePath); + return requestedResource.exists() && requestedResource.isReadable() ? requestedResource + : new ClassPathResource("/static/index.html"); + } + }); + } +}