在spring boot + rest docs中,如何设置'.html'后缀

问题描述

这是示例存储库。

https://github.com/JYK0128/Debug-Projects/tree/master/Spring_RestDocs_Example

我尝试制作解析器bean或设置配置文件

我做了映射资源。以防万一。


首先尝试。

application.properties
...
#spring.mvc.view.prefix=/static/docs/
#spring.mvc.view.suffix=.html
...

再试一次。

@Configuration
public class DocsConfig implements WebMvcConfigurer {

    // In spring boot classpath,have '/static','/public','/resources' and '/meta-inf/resources'
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/docs/**")
                .addResourceLocations("classpath:/static/docs/");
    }

    @Bean
    public InternalResourceViewResolver internalResourceViewResolver() {
        InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
        internalResourceViewResolver.setPrefix("/static/");
        internalResourceViewResolver.setSuffix(".html");
        return internalResourceViewResolver;
    }
}

解决方法

使用资源处理程序,您可以将任何请求映射到应用程序中的目录

     @Bean
     WebMvcConfigurer webMvcConfigurer(){
            return new WebMvcConfigurerAdapter() {
                @Override
                public void addResourceHandlers(ResourceHandlerRegistry registry) {
                    registry.addResourceHandler("/directory_name/**")
                            .addResourceLocations("classpath:/directory_name/");
                }
            };
     }


        @Bean
        public ViewResolver viewResolver() {
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("/WEB-INF/views/");
            **resolver.setSuffix(".html");**
            resolver.setExposeContextBeansAsAttributes(true);
            return resolver;
        }