有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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)的实现。有没有办法达到这种情况


共 (3) 个答案

  1. # 1 楼答案

    在资源中,添加文件夹“static”,其中包含所有静态内容,例如

    /yourapp

    /src/main/java/RestControllers

    /src/main/resources/yourapp.properties

    /src/main/resources/static

    /views/home.html

    /other_resources

    mvn spring启动:运行

    http://localhost:/views/home。html

    休息 @RestController with @RequestMapping

  2. # 2 楼答案

    您可以使用@RequestMapping("myServices/user")注释您的用户服务

  3. # 3 楼答案

    如果您已将任何Web服务器设置为前端,如Apache HTTPD,则可以直接从Apache使用指向静态内容的mod_proxy来提供静态上下文

    另一种方法是将应用程序发布为ROOT用户。war,所以它只使用域名http://my.domain.org提供内容,并将所有服务映射到@RequestMapping("/services/user"),正如您已经被告知的那样