Spring Boot配置context-path后,如何在根路径提供静态HTML?
解决方案:不修改context-path让根路径返回空白HTML页面
当然可以实现这个需求!不用改动现有context-path的配置,我们只需要添加一个专门处理根路径的控制器就能搞定。
方法一:直接返回空白HTML字符串
创建一个控制器类,拦截根路径/的GET请求,直接返回一个空的HTML结构:
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class RootController { @GetMapping("/") @ResponseBody public String returnBlankPage() { // 返回完全空白的HTML页面 return "<html></html>"; } }
这个控制器会单独处理http://server:8000/的请求,返回空白页面,完全不会影响原来/rest路径下的控制器和静态资源访问。
方法二:返回空白HTML文件(可选)
如果你更倾向于用文件的方式管理空白页面,可以在static或templates目录下创建一个blank.html(内容就是<html></html>),然后通过控制器返回视图名:
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class RootController { @GetMapping("/") public String returnBlankPage() { // 对应static/blank.html或templates/blank.html,取决于你的视图配置 return "blank"; } }
原理说明
Spring Boot的context-path是用来指定应用的上下文基础路径,所有业务相关的控制器、静态资源都会挂载在这个路径下(也就是/rest)。而根路径/是独立于这个上下文路径的,所以我们可以单独对其进行请求映射,不会和原有业务路径冲突。
内容的提问来源于stack exchange,提问作者dsncode
相关产品推荐
相关产品推荐

