首页 > 解决方案 > 一种在 Spring Boot 中添加静态资源目录的无中断方法

问题描述

我想让 Spring Boot 的嵌入式 Tomcat 从绝对路径指定的目录中提供静态内容/path。我知道两种方法:通过application.properties或以编程方式,但它们似乎都有副作用。第一种方法:

spring.resources.static-locations=file:/path

根据要求添加/path,但(至少)src/main/resources/resources从涉及的任何 Maven 项目中删除所有内容。我可以用

spring.resources.static-locations=file:/path,file:src/main/resources/resources

但它仅从src/main/resources/resources主项目添加,而不是在库中具有相同相对路径的各个目录。

然后,有程序化方法

@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
          .addResourceHandler("/resources/**")
          .addResourceLocations("/resources/"); 
    }
}

但它使用@EnableWebMvcwhich是不鼓励的。另一种编程方法使用资源处理程序,但随后又出现了@EnableWebMvc. 这些示例还包含看起来相对的路径,例如/WEB-INF/classes/content/,但无论如何它们都以斜线开头,这提出了如何添加绝对路径的问题。

有没有一种方法可以无中断地将具有静态资源的绝对目录添加到 Spring Boot 中?

标签: springspring-boot

解决方案


推荐阅读