Springboot 【静态资源映射】实战

在Spring Boot应用中,静态资源映射是指将应用程序的静态文件(如HTML、CSS、JavaScript、图片等)映射到HTTP请求路径上,使得这些文件可以直接通过浏览器或其他HTTP客户端访问。Spring Boot简化了这一过程,自动配置了静态资源映射,但同时也允许开发者自定义映射规则。

默认静态资源位置

Spring Boot默认会查找以下目录来加载静态资源:

  1. /static 目录
  2. /public 目录
  3. /resources 目录
  4. /META-INF/resources 目录

所有这些目录中的静态资源都会被映射到根路径 (/) 下,意味着你可以通过类似 /static/css/style.css的URL来访问这些文件。

静态资源映射规则

Spring Boot默认情况下会将所有静态资源映射到 /** 路径模式下,这包括了上述提到的四个目录。这意味着任何放置在这四个目录下的静态文件都可以通过对应的URL访问。

自定义静态资源映射

如果需要自定义静态资源的映射,可以通过以下几种方式:

  1. 修改application.properties或application.yml你可以在配置文件中指定静态资源的位置,例如:
spring.resources.static-locations=classpath:/my-resources/

这将改变默认的静态资源位置为 /my-resources

  1. 使用WebMvcConfigurer接口创建一个实现 WebMvcConfigurer 接口的类,并重写 addResourceHandlers 方法来定制静态资源的映射:
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/my-resources/**")
                .addResourceLocations("classpath:/my-resources/");
    }
}

这样,所有位于 /my-resources/ 目录下的资源都将映射到 /my-resources/** URL模式下。

实战示例

假设你需要将静态资源映射到 /assets/** 下,你可以这样做:

  1. 创建一个名为assets的新目录,并将其放在src/main/resources目录下。
  2. 将静态资源文件(如CSS、JS、图片等)放入assets目录
  3. 创建一个配置类,实现WebMvcConfigurer接口,并覆盖addResourceHandlers方法:
@Configuration
public class StaticResourceConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/assets/**")
                .addResourceLocations("classpath:/assets/");
    }
}

这样,所有在assets目录下的静态资源就可以通过/assets/**的URL模式访问了。

请记住,以上示例假设你正在使用Java配置。如果你使用XML配置,过程会有所不同,需要在web.xml或Spring配置文件中进行相应的设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值