在我的项目中,我使用了swagger-ui库,它在类路径的根目录中有index.html文件。这样,当我点击index.html
之类的根网址时,此/
就会成为我的应用的起始页面。
但我想在我的Boot项目的index.tpl
文件夹中使用我的自定义Groovy模板resources/templates
。当我执行此类方法时,应用程序仍会显示来自Swagger-UI JAR文件的index.html
。
如何使用项目中的自定义覆盖jar的索引页面?
UPD:下面的方法对我不起作用。它返回404错误。然后我添加@EnableWebMvc注释,现在Spring无法找到我的Groovy模板。我在Groovy模板的类路径中拥有所有必需的依赖项,并在属性文件中打开它们。看起来像Spring根本无法解析Groovy模板。答案 0 :(得分:2)
Spring Boot的WebMvcAutoConfigurationAdapter从" /"注册转发。到" /index.html"默认情况下(在方法addStaticIndexHtmlViewControllers中)。因此,您必须在路径" /index.html"下注册视图。
这可以通过控制器上的@RequestMapping("/index.html")
或使用:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter
{
@Override
public void addViewControllers(ViewControllerRegistry registry)
{
registry.addViewController("/index.html").setViewName("index");
}
}
另一种选择是覆盖WebMvcAutoConfigurationAdapter
并禁用WebMvcAutoConfiguration
。