Attempt to allow sub paths (routing) 3
This commit is contained in:
parent
da0470e88f
commit
3f403e3009
@ -9,10 +9,12 @@ import org.springframework.boot.web.server.WebServerFactoryCustomizer
|
|||||||
import org.springframework.context.annotation.Bean
|
import org.springframework.context.annotation.Bean
|
||||||
import org.springframework.context.annotation.Configuration
|
import org.springframework.context.annotation.Configuration
|
||||||
import org.springframework.context.annotation.Import
|
import org.springframework.context.annotation.Import
|
||||||
|
import org.springframework.core.io.Resource
|
||||||
import org.springframework.web.bind.annotation.RestController
|
import org.springframework.web.bind.annotation.RestController
|
||||||
import org.springframework.web.client.RestTemplate
|
import org.springframework.web.client.RestTemplate
|
||||||
import org.springframework.web.method.HandlerTypePredicate
|
import org.springframework.web.method.HandlerTypePredicate
|
||||||
import org.springframework.web.servlet.config.annotation.*
|
import org.springframework.web.servlet.config.annotation.*
|
||||||
|
import org.springframework.web.servlet.resource.PathResourceResolver
|
||||||
import org.springframework.web.util.DefaultUriBuilderFactory
|
import org.springframework.web.util.DefaultUriBuilderFactory
|
||||||
import org.springframework.web.util.UriTemplateHandler
|
import org.springframework.web.util.UriTemplateHandler
|
||||||
|
|
||||||
@ -26,20 +28,23 @@ class WebConfig: WebMvcConfigurer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun addResourceHandlers(registry: ResourceHandlerRegistry) {
|
override fun addResourceHandlers(registry: ResourceHandlerRegistry) {
|
||||||
|
|
||||||
registry.addResourceHandler("/**")
|
registry.addResourceHandler("/**")
|
||||||
.addResourceLocations("classpath:/static/")
|
.addResourceLocations("classpath:/static/")
|
||||||
.setCachePeriod(0)
|
.resourceChain(true)
|
||||||
|
.addResolver(object: PathResourceResolver() {
|
||||||
|
override fun getResource(resourcePath: String, location: Resource): Resource? {
|
||||||
|
// Show index.html if no resource was found
|
||||||
|
return if (!location.createRelative(resourcePath).exists() && !location.createRelative(resourcePath).isReadable) {
|
||||||
|
location.createRelative("index.html");
|
||||||
|
} else {
|
||||||
|
location.createRelative(resourcePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun addViewControllers(registry: ViewControllerRegistry) {
|
|
||||||
// Endrer på denne linjen for å være mer presis
|
|
||||||
registry.addViewController("/")
|
|
||||||
.setViewName("forward:/index.html")
|
|
||||||
|
|
||||||
// Denne fanger andre ruter som ikke starter med `/api`
|
|
||||||
registry.addViewController("/**/{spring:[^api].*}")
|
|
||||||
.setViewName("forward:/index.html")
|
|
||||||
}
|
|
||||||
override fun configurePathMatch(configurer: PathMatchConfigurer) {
|
override fun configurePathMatch(configurer: PathMatchConfigurer) {
|
||||||
configurer.addPathPrefix("/api", HandlerTypePredicate.forAnnotation(RestController::class.java))
|
configurer.addPathPrefix("/api", HandlerTypePredicate.forAnnotation(RestController::class.java))
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user