2017-05-18 5 views
0

Ich habe die Spring MVC wie folgt festgelegt, aber das Bild logo.png wird nicht angezeigt. Ich bin mit Frühling 4.2.0.RELEASEZugriff auf statische Ressourcen Spring MVC 4

Bild logo.png ist unter src/main/resources/images/logo.png

AppWebConfiguration.java

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages="br.com.casadocodigo.loja") 
public class AppWebConfiguration extends WebMvcConfigurerAdapter { 

@Bean 
public InternalResourceViewResolver internalResourceViewResolver() { 
    InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
    resolver.setPrefix("/WEB-INF/views"); 
    resolver.setSuffix(".jsp"); 
    return resolver; 
} 

@Bean(name="messageSource") 
public MessageSource messageResource() { 
    ReloadableResourceBundleMessageSource bundle = 
      new ReloadableResourceBundleMessageSource(); 
    bundle.setBasename("WEB-INF/messages"); 
    bundle.setDefaultEncoding("UTF-8"); 
    bundle.setCacheSeconds(1); 
    return bundle; 
} 

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry 
     .addResourceHandler("/resources/**") 
     .addResourceLocations("/resources/images") 
     .setCachePeriod(3600) 
     .resourceChain(true) 
     .addResolver(new PathResourceResolver()); 
} 

@Override 
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
    configurer.enable(); 
} 

} 

ServletSpringMVC.java

public class ServletSpringMVC extends 
AbstractAnnotationConfigDispatcherServletInitializer { 

@Override 
protected Class<?>[] getRootConfigClasses() { 
    return null; 
} 

@Override 
protected Class<?>[] getServletConfigClasses() { 
    return new Class[] {AppWebConfiguration.class, JPAConfiguration.class}; 
} 

@Override 
protected String[] getServletMappings() { 
    return new String[] {"/"}; 
} 

} 

JSP Seite:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<div> 
    <img src="${pageContext.request.contextPath}/resources/images/logo.png" 
alt=""/> 
</div> 
+0

'/ src/main/resources' die Wurzel des Klassenpfad ist die aktuelle Konfiguration unter'/src/main/resources/resources/images' aussieht. Sie konfigurieren auch eine Ressourcen-Kette, haben aber einen 'PathResolver', der so konfiguriert ist, dass er immer' null' zurückgibt. –

+0

Wie schlagen Sie vor, dies einzurichten? @ M.Deinum –

Antwort

0

Versuchen Sie diesen Code,

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/").setCachePeriod(31556926); 
} 
Verwandte Themen