2016-09-14 107 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

相关问题