我有一个Spring Boot应用程序,其中的一些静态文件保存在resources/static
目录中。其中一个是招摇目录。文件系统布局如下:
resources
- static
- swagger
- index.html
现在,如果我使用URI localhost:8080/swagger/index.html
向我的Web应用发送请求,那么它将正确地提供文件。但是,如果我向localhost:8080/swagger
发送请求,则Webapp会显示一个文件下载框,其中包含一个名为swagger
的空二进制文件。
我认为第二个URI实际上应该自动为index.html
文件提供服务。如何解决此问题?
答案 0 :(得分:1)
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebConfig {
@Bean
public WebMvcConfigurerAdapter forwardToIndex() {
return new WebMvcConfigurerAdapter() {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/swagger").setViewName(
"forward:/swagger/index.html");
registry.addViewController("/swagger/").setViewName(
"forward:/swagger/index.html");
}
};
}
}