You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署ASP.NET Core API:设置Swagger为默认加载页面

解决Docker中访问API默认加载Swagger页面的问题

方案一:将SwaggerUI映射到根路径

修改Program.cs中的app.UseSwaggerUI()配置,设置路由前缀为空,让根路径直接指向Swagger页面:

app.UseSwagger();
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "My Web API v1");
    c.RoutePrefix = string.Empty; // 把SwaggerUI绑定到网站根路径
});

方案二:添加根路径重定向

如果不想直接将Swagger设为根路径,可添加默认路由,将根访问请求重定向到Swagger页面:

在Program.cs的路由配置区域添加:

// 根路径重定向到Swagger
app.MapGet("/", () => Results.Redirect("/swagger"));

优化Docker本地调试配置(可选)

修改launchSettings.json中的Docker配置项,调整launchUrl为Swagger路径,这样本地通过Docker启动项目时,浏览器会直接打开Swagger页面:

"Docker": {
    "commandName": "Docker",
    "launchBrowser": true,
    "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
    "environmentVariables": {
        "ASPNETCORE_URLS": "http://+:80/"
    },
    "publishAllPorts": true
}

生产环境安全提示

如果API要部署到生产环境,建议仅在开发环境启用Swagger,避免暴露API文档。可通过环境判断控制:

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "My Web API v1");
        c.RoutePrefix = string.Empty;
    });
}

内容的提问来源于stack exchange,提问作者ceylonroad ceylonroad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:53:13