簡體   English   中英

當應用程序部署為后台服務(jar)時,spring-boot提供靜態內容

[英]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配置來提供靜態內容?

也許有些東西我在這里不明白。 與此相關的補充問題是:

  1. jar中是否還捆綁了不同的application.properties文件(在resources文件夾下)? 那意味着應該找到它們,應用程序將從那里獲取正確的配置值?

  2. 當應用程序捆綁為jar並作為init.d服務啟動時,spring-boot可以完全提供靜態內容嗎?

  3. 我該如何進一步調試問題? 我知道應將應用程序日志寫入何處,因此至少可以有所幫助。

解決了。 靜態內容文件夾和文件不屬於用於運行服務的用戶所有,因此用戶無權訪問它們。 太糟糕了,收到的錯誤尚不清楚(404),而不是某些權限錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM