Prioritise static resource locations over classpath for favicon.ico
Closes gh-17922
This commit is contained in:
parent
55c6ee71c1
commit
9ac6485768
|
@ -336,10 +336,18 @@ public class WebMvcAutoConfiguration {
|
|||
@ConditionalOnProperty(value = "spring.mvc.favicon.enabled", matchIfMissing = true)
|
||||
public static class FaviconConfiguration implements WebMvcConfigurer {
|
||||
|
||||
private final ResourceProperties resourceProperties;
|
||||
|
||||
FaviconConfiguration(ResourceProperties resourceProperties) {
|
||||
this.resourceProperties = resourceProperties;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
if (!registry.hasMappingForPattern("favicon.ico")) {
|
||||
registry.addResourceHandler("favicon.ico").addResourceLocations("classpath:favicon.ico");
|
||||
registry.addResourceHandler("favicon.ico")
|
||||
.addResourceLocations(this.resourceProperties.getStaticLocations())
|
||||
.addResourceLocations("classpath:favicon.ico");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -380,8 +380,11 @@ class WebMvcAutoConfigurationTests {
|
|||
|
||||
@Test
|
||||
void faviconMapping() {
|
||||
this.contextRunner
|
||||
.run((context) -> assertThat(getResourceMappingLocations(context).get("/favicon.ico")).hasSize(1));
|
||||
this.contextRunner.run((context) -> {
|
||||
List<Resource> favIconResources = getResourceMappingLocations(context).get("/favicon.ico");
|
||||
assertThat(favIconResources.stream().map(ClassPathResource.class::cast).map(ClassPathResource::getPath))
|
||||
.containsExactly("META-INF/resources/", "resources/", "static/", "public/", "favicon.ico");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in New Issue