spring boot 静态资源访问配置contextPath: /api后,怎样可以不加这个/api也能正常访问

spring boot
我在application.yml文件中配置了

server:
contextPath: /api

访问静态资源时需要在前面加上/api,怎样可以不加这个/api也能正常访问

阅读 13.4k
1 个回答

设置了contextPath那应用下所有的资源都只能在contextPath目录下访问了,可以使用反向代理来重写URL也是可以做到的。
当然你如果将contextPath设置为/api前面增加前缀,这种方式会比较简单。

比如下面的这种方式。增加一个servlet专门用于api地址访问。

@Bean
public ServletRegistrationBean apiV1ServletBean(WebApplicationContext wac) {
    DispatcherServlet ds = new DispatcherServlet(wac);
    ServletRegistrationBean bean = new ServletRegistrationBean(ds, "/api/v1/*");
    bean.setName("api-v1");
    return bean;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题