spring-当应用部署为后台服务 (jar) 时启动提供静态内容
spring-boot serve static content when app is deployed as a background service (jar)
我在使用 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) 启动时,我如何使用 spring-boot 提供静态内容,并且我正在使用application.properties 配置服务静态内容?
也许这里有些地方我不明白。与此相关的补充问题是:
不同的 application.properties 文件(在资源文件夹下)是否也捆绑在 jar 中?这意味着应该找到它们,并且应用程序会从那里获得正确的配置值?
当应用程序被打包为 jar 并作为 init.d 服务启动时,spring-boot 是否可以提供静态内容?
如何调试问题?我知道应用程序日志被写在哪里,所以这至少有一些帮助。
已解决。静态内容文件夹和文件不属于用于 运行 服务的用户,因此该用户无权访问它们。太糟糕了,收到的错误是不清楚的 (404),而不是一些权限错误。
我在使用 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) 启动时,我如何使用 spring-boot 提供静态内容,并且我正在使用application.properties 配置服务静态内容?
也许这里有些地方我不明白。与此相关的补充问题是:
不同的 application.properties 文件(在资源文件夹下)是否也捆绑在 jar 中?这意味着应该找到它们,并且应用程序会从那里获得正确的配置值?
当应用程序被打包为 jar 并作为 init.d 服务启动时,spring-boot 是否可以提供静态内容?
如何调试问题?我知道应用程序日志被写在哪里,所以这至少有一些帮助。
已解决。静态内容文件夹和文件不属于用于 运行 服务的用户,因此该用户无权访问它们。太糟糕了,收到的错误是不清楚的 (404),而不是一些权限错误。