使用Spring Boot在jar文件中提供静态资源服务

6
我正在开发一个解决方案,使用多个maven模块来处理不同的有界上下文。
由于Spring Boot的支持,每个模块都可以暴露自己的REST API,并且它们都托管在一个maven模块中,该模块具有@ SpringBootApplication注释的类。
简化后的项目结构如下所示:
parent  
|-- pom.xml  
|-- ...
|-- host   
  |-- Application.java      
  |-- resources
     |-- index.html
|-- driver
  |-- api     
  |-- resources
     |-- register.html
|-- notify
  |-- ...
|-- passenger
  |-- ...

我在处理复合UI时尝试使用相同的模式:一个地方保存布局、静态资源和同时属于每个绑定上下文的HTML页面,这些页面保存在它们的Maven模块中。

问题是,我在Spring Boot文档中发现没有办法从其他JAR文件中提供静态资源。

有没有解决这个功能的方法?或者这里是否存在任何架构错误?或者Spring之外的东西(例如覆盖)是解决方案?


如果您将静态文件放在路径“src/main/resources/static”中,则它们应该打包在JAR文件的“static”文件夹中,然后作为静态资源提供服务。如果您遇到任何问题,请指定您的错误。 - dunni
你的意思是把所有静态文件都放在“host”模块下,比如index.html吗?它们已经在正确的路径下,并由Spring提供服务。但是,register.html位于另一个Maven模块中,并打包为单独的JAR文件,该怎么办呢? - nsafari
1
如果文件“register.html”位于JAR中的“static”文件夹中,则Spring将其识别并作为静态资源提供。如果不起作用,您可以发布有关配置和日志文件的更多信息。 - dunni
非常感谢您抽出时间来回答。您说得对,我终于找到了导致静态资源未加载的错误。 - nsafari
1
那么呢?错在哪里了? - Joonas Vali
1个回答

8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接