2016-09-14 26 views
0

我已經付出了很大努力進行搜索,但找不到針對以下情況的具體解決方案。如何使用不同的上下文路徑提供靜態文件(index.html)和REST服務

我一直在使用@RequestMapping("user")註釋寫用戶服務。端點URL看起來像

http://localhost:8080/user 

但我想通過設置server.context-path=/myServices以及其他服務,這是同一個應用程序中應遵循相同的URL模式如暴露服務,如

http://localhost:8080/myServices/user 

我能做到這一點。

http://localhost:8080/myServices/OTHERENDPOINT 

而且我想訪問的靜態內容文件index.html這是resources\static\文件夾下的此默認網址

http://localhost:8080 

這是可以實現的,如果你使用默認context-path(/)但你不能用「/ myServices」在網址中加前綴。

我正在使用Spring boot 1.3.3基於註釋(無xml)實現。有什麼辦法可以達到這種情況?

回答

0

您可以使用@RequestMapping("myServices/user")註釋您的用戶服務。

+0

謝謝。但是我需要在'/ myService' url下安排所有的服務,而不僅僅是'user'服務。例如http:// localhost:8080/myServices/OTHERSERVICE –

+0

該文檔說上下文路徑是包含靜態內容的「應用程序上下文路徑」。我會爲每個RestController添加「/ myService」,但也許有人知道更好的解決方案。 –

0

如果您已將任何Web服務器設置爲前端,如Apache HTTPD,則可以使用指向靜態內容的mod_proxy直接從Apache提供靜態上下文。

其他方法是將應用程序發佈爲ROOT.war,因此它只提供域名爲http://my.domain.org的內容,並將服務與@RequestMapping("/services/user")一起映射,因爲您已被告知。

+0

感謝您的回覆。但是我不使用HTTPD,而且如果通過編寫'@RequestMapping(「/ myServices/user」)'映射所有服務,那麼這看起來不太好。 –

+0

爲什麼看起來不好用prefix/myServices/*? – jlumietu

+0

它看起來不太好意味着有一個很好的功能來配置它一次並應用於所有服務,那麼以這種方式使用它是沒有意義的 –

0

資源化,添加文件夾 「靜態」,用你的所有靜態內容,例如

/yourapp

/src目錄/主/ JAVA/RestControllers

/src目錄/主/資源/yourapp.properties

/src目錄/主/資源/靜態

/views/home.html

/other_resources

MVN春季啓動:運行

http://localhost:/視圖/家。HTML

休息 @RestController with @RequestMapping

相關問題