【发布时间】:2021-08-24 17:09:25
【问题描述】:
我托管了 Blazor Webassembly ASP.NET Core,并安装了 Swashbuckle.AspNetCore 以显示我的 Blazor 应用程序具有的端点(/swagger 端点)。
我的Startup.Configure 看起来像这样(只是大摇大摆的部分):
app.UseSwagger();
app.UseSwaggerUI(c =>
{
foreach (var description in provider.ApiVersionDescriptions)
{
c.SwaggerEndpoint($"{description.GroupName}/swagger.json", $"v{description.GroupName.ToUpperInvariant()}");
}
c.InjectStylesheet("/css/swaggerDark.css");
});
如您所见,我注入了有效的自定义 .css 文件。
在我的 Blazor 应用程序中,我注入了 swagger,因此我的页面看起来像这样(.razor 页面):
<iframe src="swagger"/>
再次,它可以正常工作,显示大张旗鼓的文档并且它具有深色主题。
我注意到(毫不意外)这个iframe 有一个指向这个.css 文件的链接:
<link href="/css/swaggerDark.css" rel="stylesheet" media="screen" type="text/css">
删除此链接会带来默认的招摇外观(浅色主题)。
我的应用程序的用户可以选择他想要的整个应用程序的主题(浅色/深色)。我的问题是,我如何动态注入/删除(或者启用/禁用)这个 .css 文件,所以根据用户选择的应用程序主题,swagger 将显示默认(浅色)或深色主题(使用那个 .css 文件)?
我找不到有关此问题的任何相关信息,因此我决定创建此问题。我很感激任何帮助。谢谢。
【问题讨论】:
标签: swagger blazor swashbuckle.aspnetcore