我是 Spring 框架和 Spring Boot 的新手。
我已经实现了一个非常简单的 RESTful Spring Boot Web 应用程序。
您可以在另一个问题中看到几乎完整的源代码:Spring Boot: How to externalize JDBC datasource configuration?
应用如何服务外部静态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 文件,因此该方法是 Not Acceptable 。
由于我对 Spring 的了解非常有限,因此最好提供准确具体的答案。
最佳答案
我从 another of your questions 看到您真正想要的是能够从默认值更改应用程序中静态资源的路径。撇开您为什么要这样做的问题不谈,有几个可能的答案。
- 一个是您可以提供类型为
WebMvcConfigurerAdapter
的普通 Spring MVC@Bean
并使用addResourceHandlers()
方法添加其他路径到静态资源(请参阅WebMvcAutoConfiguration
了解默认值)。 - 另一种方法是使用
ConfigurableEmbeddedServletContainerFactory
功能来设置 servlet 上下文根路径。 - 完整的“核心选项”是提供
EmbeddedServletContainerFactory
类型的@Bean
定义,以您希望的方式设置 servlet 容器。如果您使用现有的具体实现之一,它们会扩展您已经找到的Abstract*
类,因此它们甚至有一个名为documentRoot
的属性的 setter。您还可以使用EmbeddedServletContainerCustomizer
类型的@Bean
进行许多常见操作。
关于spring - 如何在 Spring Boot Embedded tomcat 中服务外部静态 HTML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20064241/