如何在Spring Boot Embedded tomcat中维护外部静态HTML文件?

zeo*_*dtr 8 spring tomcat spring-boot

我是Spring框架和Spring Boot的新手.
我已经实现了一个非常简单的RESTful Spring Boot Web应用程序.
您可以在另一个问题中看到几乎完整的源代码:Spring Boot:如何外部化JDBC数据源配置?

app如何服务外部静态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
Run Code Online (Sandbox Code Playgroud)

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

一个确切而具体的答案是可取的,因为我对Spring的了解非常有限.

Dav*_*yer 6

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

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