Spring Boot 开发 -- 静态资源配置详解

一、引言

在开发Web应用程序时,静态资源的管理和配置是一个重要的环节。Spring Boot框架为开发者提供了便捷的静态资源配置方式,使得我们可以轻松地管理如HTML、CSS、JavaScript、图片等静态资源。本文将详细介绍如何在Spring Boot项目中配置和管理静态资源。

二、Spring Boot 静态资源默认配置

Spring Boot 默认提供了静态资源的映射位置,主要包括以下几个目录:

  • /static
  • /public
  • /resources
  • /META-INF/resources
    当我们把静态资源文件放在这些目录下时,Spring Boot会自动为它们提供HTTP访问。例如,如果我们有一个名为index.html的文件放在/static目录下,那么我们就可以通过http://localhost:8080/index.html来访问它。

三、自定义静态资源位置

虽然Spring Boot提供了默认的静态资源位置,但有时候我们可能需要自定义静态资源的位置。这可以通过配置spring.resources.static-locations属性来实现。例如,我们可以在application.properties或application.yml文件中添加以下配置:

# application.properties  
spring.resources.static-locations=classpath:/custom-static/

或者

# application.yml  
spring:
  resources:
    static-locations: classpath:/custom-static/

这样,Spring Boot就会从custom-static目录(位于类路径下)加载静态资源。

四、添加资源处理器

对于更复杂的静态资源需求,我们可以使用Spring MVC的ResourceHandler和ResourceResolver来定制资源处理方式。例如,我们可以为特定的URL模式添加自定义的资源处理器:


@Configuration
public class ResourcesConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        /** swagger配置 */
        registry.addResourceHandler("swagger-ui.html")
        .addResourceLocations("classpath:/META-INF/resources/");
        // 配置Webjars资源位置  
        registry.addResourceHandler("/webjars/**").
        addResourceLocations("classpath:/META-INF/resources/webjars/");
        // 配置静态资源位置  
        registry.addResourceHandler("/static/**")  
                .addResourceLocations("classpath:/static/");  
        //自定义资源路径
        registry.addResourceHandler("/myresources/**")  
                .addResourceLocations("classpath:/my-custom-resources/");
    }

在上面的配置中,我们为以/myresources/开头的URL模式添加了一个资源处理器,它将从my-custom-resources目录(位于类路径下)加载静态资源。

五、注意事项

  1. 静态资源的访问路径是相对于应用的根路径(即/),而不是相对于静态资源所在的目录。
  2. 当有多个静态资源目录时,Spring Boot会按照默认配置的顺序(/static、/public、/resources、/META-INF/resources)来查找资源。如果找到了匹配的资源,就会立即返回该资源,不会继续查找其他目录。
  3. 如果需要访问Webjars中的资源(如jQuery、Bootstrap等),可以直接通过/webjars/**来访问。Spring Boot已经为Webjars提供了默认的支持。

相关推荐

  1. Spring Boot 开发 -- 静态资源配置详解

    2024-06-06 11:06:02       34 阅读
  2. SpringBoot 静态资源映射

    2024-06-06 11:06:02       65 阅读
  3. nginx配置缓存静态资源

    2024-06-06 11:06:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 11:06:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 11:06:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 11:06:02       87 阅读
  4. Python语言-面向对象

    2024-06-06 11:06:02       96 阅读

热门阅读

  1. 计划跳槽需要做哪些准备?

    2024-06-06 11:06:02       31 阅读
  2. 利用Date类定义TimeWithDate类(多继承)

    2024-06-06 11:06:02       29 阅读
  3. 大模型日报2024-06-05

    2024-06-06 11:06:02       32 阅读
  4. QT中如何对引入的第三方库进行翻译

    2024-06-06 11:06:02       28 阅读
  5. MATLAB误差估计扩展卡尔博斯方法的目录大纲

    2024-06-06 11:06:02       31 阅读
  6. Spring Kafka 之 @KafkaListener 注解详解

    2024-06-06 11:06:02       30 阅读
  7. 泛微OA调用发送消息接口 .Net C#示例

    2024-06-06 11:06:02       25 阅读
  8. .NET Redis限制接口请求频率 滑动窗口算法

    2024-06-06 11:06:02       27 阅读
  9. electron-vite打包成安装包配置

    2024-06-06 11:06:02       31 阅读
  10. 爬山算法的详细介绍

    2024-06-06 11:06:02       34 阅读
  11. Android12.0 SIM卡语言自适应

    2024-06-06 11:06:02       20 阅读