【发布时间】:2019-03-05 21:10:51
【问题描述】:
我在使用 spring-boot 提供静态内容时遇到问题。
我已将静态内容配置为通过 application.properties 文件提供,如下所示:
static-location-path=/opt/myapp/static
spring.resources.static-locations=file:${static-location-path}/
请注意,它位于 jar 文件之外。现在,如果我像这样使用 mvn spring-boot 插件启动我的应用程序:
mvn spring-boot:run -Drun.profiles=staging
那么静态文件就被正确地提供了,我可以访问它们了。
但我不想在暂存环境中像这样运行我的应用程序,而是作为一项服务,可以在服务器启动时自动启动。 所以我设法将应用程序构建为可执行 jar。然后我设法将它作为 init.d 服务启动。应用程序工作正常,但它不再提供静态文件。我检查过,正确的配置文件(确定应该使用哪个 application.properties 文件)应该在那里正确加载。
主要问题是:当应用程序作为 init.d 服务 (jar) 启动并且我使用 application.properties 配置来提供静态内容时,如何使用 spring-boot 提供静态内容?
也许这里有一些我不明白的地方。与此相关的补充问题是:
不同的 application.properties 文件(在资源文件夹下)是否也捆绑在 jar 中?这意味着应该找到它们,并且应用程序将从那里获得正确的配置值?
当应用程序捆绑为 jar 并作为 init.d 服务启动时,spring-boot 是否可以提供静态内容?
如何进一步调试问题?我知道应用日志的写入位置,所以这至少对某些方面有所帮助。
【问题讨论】:
-
看起来不像是重复的:1.我不使用thymeleaf,2.我的应用程序中的静态内容在资源文件夹之外并且在jar之外
-
已撤回......
标签: java spring spring-boot init.d