Spring Boot:使用war软件包提供静态内容
我试图在SpringBoot中使用自动配置的服务静态内容。 我读过这篇文章,只要把内容放到Spring Boot:使用war软件包提供静态内容,spring,spring-mvc,spring-boot,Spring,Spring Mvc,Spring Boot,我试图在SpringBoot中使用自动配置的服务静态内容。 我读过这篇文章,只要把内容放到/static/或/resources/中,并在@Controller上进行配置就足够了 在我的项目中,它看起来根本不起作用 我将它与spring boot示例web ui进行了比较,唯一不同的是包装。有jar,我有war包装 请您确认,在spring boot的war打包中,此自动配置的静态内容服务不起作用吗?您需要定义一个Servletializer,而不是main方法(此方法是创建web.xml的替代
/static/
或/resources/
中,并在@Controller
上进行配置就足够了
在我的项目中,它看起来根本不起作用
我将它与spring boot示例web ui
进行了比较,唯一不同的是包装。有jar
,我有war
包装
请您确认,在spring boot的
war
打包中,此自动配置的静态内容服务不起作用吗?您需要定义一个Servletializer,而不是main
方法(此方法是创建web.xml的替代方法)
编辑:别忘了将其添加到组件扫描首先在
src/main/resources
中创建一个名为static
的文件夹
现在,如果您希望在默认情况下显示某些内容,您可以向该文件夹添加index.html,并将其显示为登录页(例如:http://localhost:8080/my-应用程序名称
)
然后,如果您有其他内容,您可以按类型创建文件夹,并将其放入其中
例:
如果您将
login.js
文件放在js
文件夹的上方,您现在可以从urlhttp://localhost:8080/my-app name/js/login.js
您不需要配置任何东西。只需在类路径中放置一个目录/static
或/template
(即src/main/resources
,即可提供内容)。不要将此URL的映射放在控制器上。很抱歉,我没有配置任何内容。我刚刚创建了一个简单的类,并用@Controller对它进行了注释。我还没有放置任何映射。根据您编写的内容判断,您有一个带有@RequestMapping(“/static”)
的@Controller
。只有@Controller
而没有@RequestMapping
的类是非常无用的。我已经完成了类似于上面链接中描述的步骤的工作。@fire您成功地完成了吗?
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);
}
}
images -> src/main/resources/static/images
js -> src/main/resources/static/js