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

use*_*332 16 spring config

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

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

Evg*_*rov 18

请参阅文档: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

如果要将应用程序打包为JAR(部署.jar),src/main/webapp则不建议使用.

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

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

  • 我认为说"不建议使用`src/main/webapp`"可能会被读者误解.根据文档"如果您的应用程序将打包为jar*,请不要使用src/main/webapp目录*",因此您也应该提及它. (25认同)
  • 是的,这条线完全是误导. (2认同)
  • 为什么 Spring Boot 在 jar 包装中不能与 `src/main/webapp` 一起使用?我很好奇,因为如果我们需要将我们现有的 `war` 打包应用迁移到 Spring boot 怎么办? (2认同)

aka*_*ash 7

如上所述,jar包装忽略了webapp内容.如果您仍想在webapp文件夹中包含内容,则需要在maven POM.xml配置中明确指定,如下所示 -

<build>
        <resources>
            <resource>
                <directory>src/main/webapp</directory>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources> ...
Run Code Online (Sandbox Code Playgroud)