项目外的 Spring Boot 自定义静态资源位置

Gre*_*ack 1 resources spring-mvc spring-boot

如何添加自定义资源位置,例如位于名为 Resources 的文件夹中的 D 驱动器上。

@Configuration
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        super.addResourceHandlers(registry);
        registry.addResourceHandler("/**").addResourceLocations("D:/Resources/");
    }
}
Run Code Online (Sandbox Code Playgroud)

这不起作用。

这是我的应用程序类和唯一的其他配置文件。

@SpringBootApplication 公共类应用程序 {

public static void main(String args[]){
    SpringApplication.run(Application.class, args);
}

@Bean // for websocket endpoints
public ServerEndpointExporter serverEndpointExporter() {
    return new ServerEndpointExporter();
}

@Bean
public PasswordEncoder bcryptPasswordEncoder(){
    return new BCryptPasswordEncoder();
}
Run Code Online (Sandbox Code Playgroud)

}

Mas*_*ave 5

您应该使用file前缀说明您的位置,请在此处查看更多信息。所以应该是

registry.addResourceHandler("/**").addResourceLocations("file:///D:/Resources/");
Run Code Online (Sandbox Code Playgroud)

  • 外部目录位置是基于文件 URI 语法定义的,详细信息在线介绍,例如 https://en.wikipedia.org/wiki/File_URI_scheme#Meaning_of_slash_character 但简而言之,给定的位置等效于 `file://localhost /D:/资源/` (2认同)