diff --git a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java index 802564e3b6..3bbaa35651 100644 --- a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java +++ b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java @@ -423,6 +423,17 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol } } else { + String urlString = url.toString(); + String cleanedPath = StringUtils.cleanPath(urlString); + if (!cleanedPath.equals(urlString)) { + // Prefer cleaned URL, aligned with UrlResource#createRelative(String) + try { + return new UrlResource(ResourceUtils.toURI(cleanedPath)); + } + catch (URISyntaxException | MalformedURLException ex) { + // Fallback to regular URL construction below... + } + } return new UrlResource(url); } }