无法从Spring Boot应用程序将静态内容加载到JSP页面中

时间:2018-09-28 07:00:48

标签: java html spring-mvc jsp spring-boot

我正在创建一个SpringBoot Web应用程序,该应用程序在渲染带有某些静态实体(如图像)的.jsp页面时。 我尝试将静态文件添加到从 META_INF static 的每个文件夹中,但是在控制台出现404错误并且图像不显示。


Here is my project structure


HTML代码如下:

<img src="image/nia-logo.png">


Spring Boot Application类如下:

@SpringBootApplication
@PropertySource("classpath:application.properties")
@EnableWebMvc
public class FeedbackApplication  implements WebMvcConfigurer{  

@Autowired
private Environment environment;


public static void main(String[] args) throws Exception {
    SpringApplication.run(FeedbackApplication.class, args);
}



@Bean
public ViewResolver getViewResolver() {     
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setPrefix("/WEB-INF/jsp/");
    viewResolver.setSuffix(".jsp");
    viewResolver.setViewClass(JstlView.class);
    return viewResolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    if (!registry.hasMappingForPattern("/resources/**")) {
        registry.addResourceHandler("/resources/**").addResourceLocations(
                "classpath:/resources/static/");
    }

}

}


请帮助我,并指出我在哪里犯错。

1 个答案:

答案 0 :(得分:2)

在addResourceHandlers配置中,它定义了将/resources/**开头的所有调用都视为资源文件。

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    if (!registry.hasMappingForPattern("/resources/**")) {
        registry.addResourceHandler("/resources/**").addResourceLocations(
            "classpath:/static/");
    }
}

所以您需要做的是将src网址更改为<img src="/resources/image/nia-logo.png">

希望这会有所帮助!快乐编码:)