问题 Spring boot:配置它以查找webapp文件夹


默认情况下,Spring Boot会在我的src / main / webapp文件夹中查找我的html文件。如果我使用另一个文件夹放置html文件,我在哪里可以更改Spring Boot的设置?

稍后,文件将被包装在jar中以进行部署。还有其他我需要担心的事情吗?


11524
2018-02-25 17:26


起源



答案:


查看文档: http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-static-content

从中加载静态资源 /static/public/resources/META-INF/resources

运用 src/main/webapp 如果您使用jar进行部署,则不建议使用。

您可以通过覆盖来自定义 addResourceHandlers 方法 WebMvcConfigurerAdapter

    @Configuration
    public class MvcConfig extends WebMvcConfigurerAdapter {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry){
             registry.addResourceHandler("/**")
                .addResourceLocations("/")
                .setCachePeriod(0);
        }
    }

13
2018-02-25 18:48



我想说“使用 src/main/webapp 不建议“可能被读者误解。根据文档”不要使用src / main / webapp目录 如果您的应用程序将打包为jar“所以你也应该提一下。 - Maksim Sorokin
是的,这条线完全是误导。 - csmckelvey
@MaksimSorokin修复,谢谢。 - Evgeni Dimitrov
为什么春季启动不起作用 src/main/webapp 在罐装包装?我很好奇,因为如果我们需要迁移我们现有的 war 打包应用程序到Spring启动? - akash
@akash完全同意,这就是我现在要为我的项目做的事情。 - Ben


答案:


查看文档: http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-static-content

从中加载静态资源 /static/public/resources/META-INF/resources

运用 src/main/webapp 如果您使用jar进行部署,则不建议使用。

您可以通过覆盖来自定义 addResourceHandlers 方法 WebMvcConfigurerAdapter

    @Configuration
    public class MvcConfig extends WebMvcConfigurerAdapter {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry){
             registry.addResourceHandler("/**")
                .addResourceLocations("/")
                .setCachePeriod(0);
        }
    }

13
2018-02-25 18:48



我想说“使用 src/main/webapp 不建议“可能被读者误解。根据文档”不要使用src / main / webapp目录 如果您的应用程序将打包为jar“所以你也应该提一下。 - Maksim Sorokin
是的,这条线完全是误导。 - csmckelvey
@MaksimSorokin修复,谢谢。 - Evgeni Dimitrov
为什么春季启动不起作用 src/main/webapp 在罐装包装?我很好奇,因为如果我们需要迁移我们现有的 war 打包应用程序到Spring启动? - akash
@akash完全同意,这就是我现在要为我的项目做的事情。 - Ben


正如刚才提到的, jar 包装无视 webapp 内容。如果您仍想要包含内容 webapp 文件夹,你需要在maven中明确指定 POM.xml 配置如下 -

<build>
        <resources>
            <resource>
                <directory>src/main/webapp</directory>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources> ...

3
2017-11-13 13:33