diff --git a/src/main/java/ext/Ext.kt b/src/main/java/ext/Ext.kt index 7cae24d2..3617213d 100644 --- a/src/main/java/ext/Ext.kt +++ b/src/main/java/ext/Ext.kt @@ -79,4 +79,4 @@ suspend fun async(block: suspend kotlinx.coroutines.CoroutineScope.() -> T): fun path(part1: Str, vararg parts: Str) = Path.of(part1, *parts) fun Str.path() = Path.of(this) operator fun Path.div(part: Str) = resolve(part) - +fun Str.ensureEndingSlash() = if (endsWith('/')) this else "$this/" diff --git a/src/main/java/icu/samnyan/aqua/net/utils/PathProps.kt b/src/main/java/icu/samnyan/aqua/net/utils/PathProps.kt index 8746d234..5318bf60 100644 --- a/src/main/java/icu/samnyan/aqua/net/utils/PathProps.kt +++ b/src/main/java/icu/samnyan/aqua/net/utils/PathProps.kt @@ -1,11 +1,13 @@ package icu.samnyan.aqua.net.utils +import ext.ensureEndingSlash import ext.path import jakarta.annotation.PostConstruct import org.springframework.boot.context.properties.ConfigurationProperties import org.springframework.context.annotation.Configuration import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry import org.springframework.web.servlet.config.annotation.WebMvcConfigurer +import org.springframework.web.servlet.resource.PathResourceResolver @Configuration @ConfigurationProperties(prefix = "paths") @@ -25,12 +27,14 @@ class PathProps { @Configuration class UploadStatic(val paths: PathProps): WebMvcConfigurer { override fun addResourceHandlers(registry: ResourceHandlerRegistry) { + println("Adding resource handlers") mapOf( - "/uploads/net/portrait/**" to paths.aquaNetPortrait, - "/uploads/mai2/portrait/**" to paths.mai2Portrait, - "/uploads/mai2/plays/**" to paths.mai2Plays + "/uploads/net/portrait/**" to paths.aquaNetPortrait.ensureEndingSlash(), + "/uploads/mai2/portrait/**" to paths.mai2Portrait.ensureEndingSlash(), + "/uploads/mai2/plays/**" to paths.mai2Plays.ensureEndingSlash() ).forEach { (k, v) -> - registry.addResourceHandler(k).addResourceLocations("file:$v").setCachePeriod(10).resourceChain(true) + registry.addResourceHandler(k).addResourceLocations("file:$v") + .setCachePeriod(10).resourceChain(true).addResolver(PathResourceResolver()) } } } \ No newline at end of file