小编典典

如何在Spring Boot Embedded Tomcat中为外部静态HTML文件提供服务?

spring-boot

我是Spring框架和Spring Boot的新手。 我已经实现了一个非常简单的RESTful Spring Boot Web应用程序。

该应用程序如何为外部静态HTML,CSS JS文件提供服务?
例如,目录结构可以如下:

MyApp\
   MyApp.jar (this is the Spring Boot app that services the static files below)
   static\
       index.htm
       images\
           logo.jpg
       js\
           main.js
           sub.js
       css\
           app.css
       part\
           main.htm
           sub.htm

我已经阅读了构建包含静态HTML文件的.WAR文件的方法,但是由于即使在单个HTML文件修改时,它也需要重建和重新部署WAR文件,因此该方法是不可接受的。

由于我对Spring的了解非常有限,因此最好提供确切而具体的答案。


阅读 501

收藏
2020-05-30

共1个答案

小编典典

我从另一个问题中看到,您真正想要的是能够从默认值更改应用程序中静态资源的路径。抛开为什么要这样做的问题,有几个可能的答案。

  • 一种是您可以提供一种普通的Spring MVC @Bean类型,WebMvcConfigurerAdapter并使用该addResourceHandlers()方法向静态资源添加其他路径(WebMvcAutoConfiguration有关默认值,请参见)。
  • 另一种方法是使用这些ConfigurableEmbeddedServletContainerFactory功能来设置Servlet上下文根路径。
  • 完整的“核选项”是提供一种@Bean类型定义,EmbeddedServletContainerFactory以所需的方式设置servlet容器。如果您使用现有的具体实现之一,则它们会扩展Abstract*您已经找到的类,因此它们甚至有一个名为的属性的设置器documentRoot。您也可以使用@Beantype 进行很多常见的操作EmbeddedServletContainerCustomizer
2020-05-30