加载 /swagger/index.html 页面时,浏览器找不到部署到 Azure 中的应用程序服务所需的 swagger-ui 资源,返回 404。它在本地运行时有效。我的设置是:
services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo
{
Title = "Nexus WebApp",
Version = "v1"
});
options.CustomSchemaIds(type => type.ToString());
});
Run Code Online (Sandbox Code Playgroud)
var builder = endpoints.CreateApplicationBuilder();
builder.UseSwagger();
builder.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Nexus WebApp");
});
var pipeline = builder.Build();
endpoints.Map("/swagger", pipeline)
.RequireAuthorization(new AuthorizeAttribute());
endpoints.Map("/swagger/index.html", pipeline)
.RequireAuthorization(new AuthorizeAttribute());
endpoints.Map("/swagger/{documentName}/swagger.json", pipeline)
.RequireAuthorization(new AuthorizeAttribute());
Run Code Online (Sandbox Code Playgroud)
我尝试过像这样使用来自 swagger 端点的相对路径..\swagger\v1/swagger.json,不幸的是,我尝试指定 RoutePrefix 都无济于事。我知道有人问过类似的问题,但不幸的是似乎没有一个有帮助。
有人有任何线索吗?
更新
这些是它返回 404 的资源: