当前位置: 首页 > 知识库问答 >
问题:

用静态内容运行Spring Bootjar

柏明亮
2023-03-14

我使用spring boot并将静态内容(html、css等)存储为src/main/webapp。我理解不建议这样做,因为它不会存储在jar文件中(应该存储在/META-INF/resources//resources//static//public/)。但我的问题不是关于在jar中存储静态内容。

这是项目结构:

App
 ├──src
 |   └───main
 |        ├── java
 |        |     └── ...
 |        ├── resources
 |        |     └── (everything here will be in jar)
 |        └── webapp <- this won't be in jar
 |               └── ...
 └ target
     └───App.jar

如何从目标文件夹运行app.jar并让Spring Boot查找静态内容?它与类路径有关吗?我试图用-cp选项指定类路径,但它不起作用。

共有1个答案

宗冷勋
2023-03-14

有一种观点认为这是一个构建问题。我不是指包装问题(我知道你不想把它放进罐子里)。但是您还有另一个选择:您的构建系统(例如Maven)可以将静态文件复制到目标文件夹中。

这个答案演示了如何使用maven-antrun-plugin调用Ant的copy命令。这将把静态文件的副本放入target文件夹中。

显然要更改执行阶段(测试阶段对于您的用例来说太具体/太晚了)。也许还可以查找是否有更适合的方法来完成这一任务(因为委托给Ant并不是一个非常习惯的方法)。

 类似资料:
  • 注意: 本教程假定你已经下载和安装了CodeIgniter开发环境。 首先,你需要创建一个可以处理静态内容请求的控制器类。控制器,是一个用来代理完成某项任务的PHP类,它充当基于MVC架构应用程序的“粘合剂”(译者注:控制器用来粘合/协调不同模型和视图。随着教程的深入,你会更深刻的理解这一点)。 举例来说,假设存在某个针对如下URL的请求: http://example.com/news/late

  • Note: 这篇教程假设你已经下载好 CodeIgniter ,并将其 安装 到你的开发环境。 你要做的第一件事情是新建一个 控制器 来处理静态页面,控制器就是一个简单的类, 用来完成你的工作,它是你整个 Web 应用程序的 “粘合剂” 。 例如,当访问下面这个 URL 时: http://example.com/news/latest/10 通过这个 URL 我们就可以推测出来,有一个叫做 "n

  • 问题内容: 我无法编译以下代码: 出现以下错误: 无法从静态内容引用非静态方法calcArea(int,int) 这是什么意思?我该如何解决该问题..? 编辑: 根据您的建议,我创建了一个新的test()实例,如下所示: 这样对吗?如果我这样做有什么区别… 问题答案: Nanne提出的建议绝对可以解决您的问题。但是,我认为如果现在就养成习惯,在学习Java的早期阶段,尝试尽可能少地使用静态方法(例

  • 问题内容: Express和connect似乎已删除其gzip功能,因为它们效率太低。目前,对于express-js的gzip是否有可靠的解决方案? 问题答案: Connect 2.0 添加了对基于新zlib东西的compress()中间件的支持,而这些东西刚刚出现在Node Core API中。 通过在文件中添加连接2.0的依赖关系,可以在快速服务器中使用此功能: 然后将以下逻辑应用于快速应用程

  • 现在,我有一个简单的Spring Boot应用程序,它为静态图像提供服务,我将这些图像放在了resources/static/img中。这对于显示实际内容来说很好,但我想解决两件事: > 我不希望这些图像中的任何一个与生成的文件捆绑在一起,我知道将这些图像放在文件夹中会做到这一点。 使用我当前的设置,为了在webapp上看到新图像,我必须将其添加到文件夹并重新启动。相反,我希望Spring提供特定

  • 问题内容: 我在两个不同的容器(Tomcat和Jetty)上部署了一个webapp,但是它们用于提供静态内容的默认servlet具有处理我要使用的URL结构的不同方式(详细信息)。 因此,我希望在web应用程序中包含一个小型servlet,以提供其自己的静态内容(图像,CSS等)。Servlet应该具有以下属性: No external dependencies Simple and reliab