为了处理 Vue.js 的 History 模式,需要在 Spring MVC 中配置一个控制器来转发所有的非 API 请求到 index.html。这样,前端路由可以接管 URL 并正确显示 Vue.js 组件。
创建一个控制器(例如 ForwardingController)来处理所有的前端路由:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class ForwardingController {
@GetMapping("/**/{path:[^\\.]*}")
public String forward() {
// 将所有匹配的请求转发到 /index.html
return "forward:/index.html";
}
}
在这个控制器中,/**/{path:[^\.]*} 是一个路径匹配模式,它匹配所有的路径(不包含点 ., 因为点通常用于文件扩展名)。这确保了 Vue.js 的 History 模式可以正确处理路由。