Spring Boot:使用war包装提供静态内容

时间:2014-08-11 08:54:17

标签: spring spring-mvc spring-boot

我试图在spring boot中使用自动配置的服务静态内容。 我认为将内容放到/static//resources/并在@Controller上进行配置就可以了。

在我的项目中,它看起来根本不起作用。

我将它与spring-boot-sample-web-ui进行了比较,唯一不同的是包装。有jar我有war包装。

请您确认一下,在war打包的春季启动中,这个自动配置的静态内容服务不起作用?

2 个答案:

答案 0 :(得分:1)

首先在static中创建一个名为src/main/resources的文件夹。

现在,如果您希望默认显示某些内容,可以将index.html添加到该文件夹​​,然后将其显示为您的目标网页(例如:http://localhost:8080/my-app-name

然后,如果您有其他内容,则可以按类型创建文件夹,将其放入内部。

前:

images  -> src/main/resources/static/images
js  -> src/main/resources/static/js

如果您将login.js文件放在js文件夹上方,则可以从网址http://localhost:8080/my-app-name/js/login.js

立即访问该文件夹

答案 1 :(得分:-1)

而不是main方法,您需要定义一个servletInitializer(这个是创建web.xml的替代方法)

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;

public class MyServletInitializerextends extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

}

编辑:不要忘记将其添加到componentScan