提问者:小点点

如何更改Swagger网站图标?


我正在构建一个ASP.NETCORE WebAPI并使用Swagger作为留档。我无法更改网站图标。我在www root下有一个swagger-用户界面目录,我在其中放置了我的网站图标,但网站图标从来没有在那里。此外,我正在使用自定义js文件中的网站脚本更改网站图标。

那么,如何改变斯威格的网站图标呢?


共3个答案

匿名用户

您需要注入jscript,如下所示:

1-创建 /assets/js/docs.js如下:

(function() {
    var link = document.querySelector("link[rel*='icon']") || document.createElement('link');;
    document.head.removeChild(link);
    link = document.querySelector("link[rel*='icon']") || document.createElement('link');
    document.head.removeChild(link);
    link = document.createElement('link');
    link.type = 'image/x-icon';
    link.rel = 'shortcut icon';
    link.href = '../assets/images/logo_icon.png';
    document.getElementsByTagName('head')[0].appendChild(link);
})();

2-在启动. cs中加载脚本

public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApiVersionDescriptionProvider provider)
        {
            app.UseSwaggerUI(
                options =>
                {                    
                    options.InjectJavascript("../assets/js/docs.js");  
                });

        }

注意:确保在.NET核心配置方法中启用了静态文件。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApiVersionDescriptionProvider provider)
{

    app.UseStaticFiles(); // For the wwwroot folder

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "assets/images")),
        RequestPath = "/assets/images"
    });        

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "assets/js")),
        RequestPath = "/assets/js"
    });

}

匿名用户

这是对我有用的:

首先,您必须创建www root文件夹,并在其中放置一个名为swagger的文件夹。编辑您的csproj以包含以下行:

<ItemGroup>
    <None Include="wwwroot\*" />
</ItemGroup> 

此目录下的文件必须是Content请勿复制。无论如何,这是默认选项。

然后,您必须在swagger文件夹中放置两个名为PPICON-16x16. pngPPICON-32x32.png的png文件。

最后要做的是,添加app. UseStticFiles();app.UseSwaggerUI();之前让它工作。

您还可以在ww root文件夹下添加ppicon. ico。

**注意:如果您修改了endpointurl,请使用app. UseSwaggerUI(config=

匿名用户

这也可以实现,如果你只是把你的工具栏图标. ico在根目录下的www root文件夹:wwroot_www.ico.ico。放置在根目录下,工具栏图标.ico被用作默认的浏览器选项卡图标。

当然,如前所述,您需要确保您的配置()方法中有app. UseStticFiles();才能在www root中提供文件。

最后,还要确保您的. csproj文件中包含以下内容:

  <ItemGroup>
    <None Include="wwwroot\*" />
  </ItemGroup>