现在默认是/doc.html,想改成其它链接访问,如/api/swagger/index.html,请问能设置吗?
这个和项目本身没啥关系,doc.html只是默认的静态html文件
你后端重写一个路径,重定向一下不就可以了吗?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
@萧明 不是,我是希望直接通过 /api/swagger/index.html
访问到文档,而不是访问 /api/swagger/index.html
重定向到 /doc.html
,就相当于映射目录。
因为我的项目是前后端分离的,/doc.html
就会直接跳转到前端,只有访问 /api/**
才会走后端项目。
我尝试了:
registry.addResourceHandler("/api/swagger/**").addResourceLocations("classpath:/META-INF/resources/")
使用 /api/swagger/doc.html
能访问,但 swagger-resources/configuration/ui
及 swagger-resources
会404,因为这两个文件好像是通过相对路径访问。
所以不知道我的做法是不是正确的,还望指教。
/doc.html是后端服务提供的静态文件啊 你项目前后端分离的,打包的时候是和后端服务部署在一起的还是分开部署的
如果部署在一起的,doc.html和你前端的文件性质是一样的啊 没什么影响
前后端是分开的,但是nginx配置的是同域访问的,只要域名访问 ${base_url}/api/**
地址则走后端,访问其它地址则走前端。所以访问 /doc.html
会直接转发请求到前端,所以我才想将swagger访问地址改为/api/
下的。
可以在nginx哪里配置一个路径地址?
因为 knife4j
默认地址是 /doc.html
,但我想使用/api/swagger/index.html
访问,可以这样
方法:
registry.addResourceHandler("/api/swagger/**").addResourceLocations("classpath:/META-INF/resources/")
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/")
@Controller
@RequestMapping("/api/swagger")
class SwaggerController {
@GetMapping("/index.html")
fun index(): String {
return "forward:/api/swagger2/doc.html"
}
@GetMapping("/swagger-resources/configuration/ui")
fun configurationUI(): String {
return "forward:/swagger-resources/configuration/ui"
}
@GetMapping("/swagger-resources")
fun resources(): String {
return "forward:/swagger-resources"
}
@GetMapping("/v2/api-docs")
fun docs(): String {
return "forward:/v2/api-docs"
}
}
登录 后才可以发表评论