java如何使用不同的上下文路径提供静态文件(index.html)和REST服务
我已经付出了很大的努力去寻找,但我找不到针对以下情况的具体解决方案
我已经使用@RequestMapping("user")
注释编写了用户服务。端点url看起来像
http://localhost:8080/user
但我想公开像这样的服务
http://localhost:8080/myServices/user
我可以通过设置server.context-path=/myServices
来实现,同样的应用程序中的其他服务也应该遵循同样的url模式,例如
http://localhost:8080/myServices/OTHERENDPOINT
但是,我还想访问静态内容文件index.html
,该文件位于resources\static\
文件夹下的默认url下
http://localhost:8080
如果您使用默认的context-path(/)
,但不能在url中使用“/myServices”前缀,那么这是可以实现的
我正在使用Spring boot 1.3.3
基于注释(无xml)的实现。有没有办法达到这种情况
# 1 楼答案
在资源中,添加文件夹“static”,其中包含所有静态内容,例如
/yourapp
mvn spring启动:运行
http://localhost:/views/home。html
休息
@RestController with @RequestMapping
# 2 楼答案
您可以使用
@RequestMapping("myServices/user")
注释您的用户服务# 3 楼答案
如果您已将任何Web服务器设置为前端,如
Apache HTTPD
,则可以直接从Apache使用指向静态内容的mod_proxy
来提供静态上下文另一种方法是将应用程序发布为ROOT用户。war,所以它只使用域名
http://my.domain.org
提供内容,并将所有服务映射到@RequestMapping("/services/user")
,正如您已经被告知的那样