我使用Swashbuckle NuGet包为我的API创建Swagger文档。 https://www.nuget.org/packages/Swashbuckle
我试图对用户界面做一些小改动 - 主要是为了在标题中添加一些公司品牌。
我已将两个文件作为嵌入式资源添加到我的项目中,名为resources。
这些通过以下方式注入UI:
.EnableSwaggerUi(c =>
{
c.InjectStylesheet(thisAssembly, typeof(SwaggerConfig).Namespace + ".Resources.Swagger.css");
c.InjectJavaScript(thisAssembly, typeof(SwaggerConfig).Namespace + ".Resources.Swagger.js");
}
这导致以下链接被添加到呈现的页面。
<link href="ext/ang_nav_api-Resources-Swagger-css" rel="stylesheet" type="text/css" media="screen">
这一切都正确,样式表按预期工作。
然而.js脚本不会出现在客户端上。
将c.InjectJavaScript
更改为c.InjectStylesheet
会将文件注入<link>
..所以我很高兴文件本身已正确嵌入等。
这里可能有什么问题?
答案 0 :(得分:1)
.js脚本不会出现在客户端上。 (不是你预期的方式) 仔细查看index.html的代码: https://github.com/domaindrivendev/Swashbuckle/blob/8223bedae706fec612c98ebbcee6b2d7033ae349/Swashbuckle.Core/SwaggerUi/CustomAssets/index.html#L98
您的customScripts将在onComplete事件
上动态加载$.getScript(script);