Spring Boot 设置静态资源访问

时间:2022-05-03
本文章向大家介绍Spring Boot 设置静态资源访问,主要内容包括问题描述、解决方案、常见问题、解释、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

问题描述

当使用spring Boot来架设服务系统时,有时候也需要用到前端页面,当然就不可或缺地需要访问其他一些静态资源,比如图片、css、js等文件。那么如何设置Spring Boot网站可以访问得到这些静态资源,以及静态资源如何布局?

解决方案

这里引用stackoverflow网站的问题截图:[http://stackoverflow.com/questions/27381781/java-spring-boot-how-to-map-my-my-app-root-to-index-html]

以及config/WebConfig.Java的内容如下:

@Configuration
@EnableWebMvc
@ComponentScan
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("/");
        }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

常见问题

官方的解说

最常见的就是官方给出的方案:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html 具体位置在26.1.4 Static Content 但是经过检验 src/main/resources目录下的资源文件不能被直接访问到。图片说明如下: 

解释

其实官方解释没有提及一点,就是不能使用@EnableWebMvc,当然如果Spring Boot在classpath里看到有 spring webmvc 也会自动添加@EnableWebMvc (http://spring.io/guides/gs/rest-service/)

如果@EnableWebMvc了,那么就会自动覆盖了官方给出的/static/publicMETA-INF/resources/resources等存放静态资源的目录。而将静态资源定位于src/main/webapp。当需要重新定义好资源所在目录时,则需要主动添加上述的那个配置类,来Override addResourceHandlers方法。