spring - 如何在 Spring Boot Embedded tomcat 中服务外部静态 HTML 文件?

标签 spring tomcat spring-boot

我是 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/

相关文章:

java - hibernate createSQLQuery批量插入

java - 任何持久更改的审计日志,不使用数据库触发器,而是使用 spring/hibernate

java - 尝试获取资源路径会导致 NullPointerExceptions

java - SpringFramework Boot 在其他 servlet 读取输入流之前读取它

spring-boot - 如何在Spring Data ElasticSearch中对嵌套对象使用术语查询?

java - PrePersist、自定义生成器或服务层中的 Spring JPA/Hibernate 复合 key 生成?

java - spring 框架 - 未创建对象

java - ThreadPoolExecutor.run 和 Servlet 重新初始化

java - 如何在 Spring Boot 应用程序中设置 Tomcat 的 "reloadable"标志?

java - 需要帮助了解 Tomcat 与 WepApp 类加载问题