无法使用Swashbuckle / Swagger注入javascript

时间:2017-07-04 08:18:00

标签: asp.net-web-api2 swagger swashbuckle

我使用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> ..所以我很高兴文件本身已正确嵌入等。

这里可能有什么问题?

1 个答案:

答案 0 :(得分:1)

.js脚本不会出现在客户端上。 (不是你预期的方式) 仔细查看index.html的代码: https://github.com/domaindrivendev/Swashbuckle/blob/8223bedae706fec612c98ebbcee6b2d7033ae349/Swashbuckle.Core/SwaggerUi/CustomAssets/index.html#L98

您的customScripts将在onComplete事件

上动态加载
$.getScript(script);