如何解决当它托管在子目录上时如何引用 swagger docs.json 文件?
我有一个包含 swagger 文档的 ASP.NET Core 5.0 Web API。当我在我的 PC 或根域(例如 my.api.local
)中运行它时,它的文档可以正常工作,但是当我将该应用程序托管在子目录(例如 other.domin.com/my-api
)中时,swagger 显示错误:
未找到 swagger/v1/docs.json。
我检查了一下,发现它在路径 docs.json
中搜索 other.domin.com/swagger/v1/docs.json
而不是 other.domin.com/my-api/swagger/v1/docs.json
这是我用来处理文档端点的代码:
app.UseSwagger(options => { options.RouteTemplate = "swagger/{documentName}/docs.json"; })
.UseSwaggerUI(options =>
{
options.RoutePrefix = "swagger";
foreach (var description in provider.ApiVersionDescriptions)
options.SwaggerEndpoint($"/swagger/{description.GroupName}/docs.json",description.GroupName.ToUpperInvariant());
});
如何相对地指向docs.json
?
更新
我将托管子目录添加为以下代码并修复了 swagger UI 问题,但我的请求仍在发送到“other.domain.com”而不是“other.domain.com/my-api”。
我在谷歌或其他资源中没有找到任何解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。