Swagger JSON相对路径

时间:2017-04-28 12:00:15

标签: c# asp.net swagger relative-path

在我的ASP 4.6应用程序中,我有:

app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "Feature Toggle API V1"); });

当我在localhost:5000/swagger/v1/swagger.json上运行它时它工作正常但是当我将它部署在使用不同应用程序someserver/myapp/swagger/v1/swagger.json的虚拟目录的远程服务器上时,它不起作用。

app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "Feature Toggle API V1"); });转换为适用于localhost和虚拟目录的相对路径的最佳做法是什么?

2 个答案:

答案 0 :(得分:5)

我遇到了同样的问题 试试这个:

        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("v1/swagger.json", "V1 Docs");                
        });

答案 1 :(得分:0)

也许这个问题有点老了,但是我遇到了同样的问题,并在ASP.NET Core文档中找到了答案:

  

如果将目录与IIS或反向代理一起使用,请设置Swagger   使用./前缀的相对路径的端点。例如,   ./swagger/v1/swagger.json。使用/swagger/v1/swagger.json指令   该应用程序在URL的真实根目录下查找JSON文件(加上   路由前缀(如果使用)。例如使用   http://localhost://swagger/v1/swagger.json代替   的   http://localhost:///swagger/v1/swagger.json。

原始链接:https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-2.2&tabs=visual-studio