java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot静态资源的配置

springboot静态资源的配置方式

作者:龙兄你好呀

这篇文章主要介绍了springboot静态资源的配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

springboot静态资源的配置

1. springboot默认的静态资源存放路径

静态资源的存放路径为classpath,也就是resources目录下的:

如下所示的CLASSPATH_RESOURCE_LOCATIONS数组存放的是静态资源的访问路径。

public class ResourceProperties {
    private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};
    private String[] staticLocations;
    private boolean addMappings;
    private final ResourceProperties.Chain chain;
    private final ResourceProperties.Cache cache;
    ......

2.静态资源的访问顺序

默认情况下是按照存放静态资源路径的数组顺序访问的。

也即按照下面的访问顺序:

如上图所示,在这种情况下,访问index.html。那么访问的是- /META-INF/resources里面的index.html。

结论:springboot会查找优先级高的文件,从高到低,一直找到所需要的静态资源为止。

3.配置springboot项目首页

静态资源文件夹下的所有 index.html 被称为静态首页或者欢迎页,它们会被 /** 映射,换句话说就是,当我们访问"localhost:8080"时,都会跳转到静态首页(欢迎页)。

静态首页映射的原理是Spring Boot去扫描静态资源目录下的index.html页面,同时遵循静态资源优先级原则。

4.springboot 配置

# 默认值为    /**
spring.mvc.static-path-pattern=
# 默认值为   classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ 
spring.resources.static-locations=这里设置要指向的路径,多个使用英文逗号隔开

springboot静态资源目录的配置

通过配置文件配置

配置节点:spring.web.resources.static-locations

值为要配置的静态资源存放目录

如:

spring:
    web:     
        resources:
            static-locations: classpath:/test/

以上配置中,设置静态资源目录为src/main/resources/test/目录。

假如在test目录下存放文件test.txt,程序启动后,便能通过浏览器访问ip:port/test.txt访问文件。

通过config类配置

新建WebMvcConfig类,继承WebMvcConfigurationSupport类,并添加注解@Configuration。

重写WebMvcConfigurationSupport类的addResourceHandlers方法。

通过参数ResourceHandlerRegistry的addResourceHandler方法和addResourceLocations添加访问路径与资源目录的映射。

如:

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/test/**").addResourceLocations("classpath:/test/");
    }
}

上述配置代码中,添加了路径/test/**对资源目录src/main/resources/test/的映射。

假如在test目录下存放文件test.txt,程序启动后,便能在浏览器访问ip:port/test/test.txt访问文件内容

区别:

共同点:

总结

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文