我正在构建一个ASP.NETCORE WebAPI并使用Swagger作为留档。我无法更改网站图标。我在www root下有一个swagger-用户界面目录,我在其中放置了我的网站图标,但网站图标从来没有在那里。此外,我正在使用自定义js文件中的网站脚本更改网站图标。
那么,如何改变斯威格的网站图标呢?
您需要注入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. png
和PPICON-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>