无法在Swagger中注入Javascript

时间:2017-01-05 20:06:55

标签: swagger swashbuckle

我得到一个404文件,我试图在我的招摇中注入一个JavaScript文件。以下是我的招摇配置

var thisAssembly = typeof(SwaggerConfig).Assembly;

GlobalConfiguration.Configuration 
    .EnableSwagger(c =>
        {
            c.SingleApiVersion("v1", "A title for your API");
        })
    .EnableSwaggerUi(c =>
        {
            c.InjectJavaScript(thisAssembly,"MyApi.Api.SwaggerExtensions.inject.js");   
        });

对于inject.js构建操作设置为嵌入式资源,逻辑路径是正确的,因为我的项目名称是MyApi.Api,文件位于名为SwaggerExtensions的项目中的文件夹中

2 个答案:

答案 0 :(得分:5)

使用自定义资源时,资源名称应包含项目的默认命名空间,如here所述。在您的情况下,配置应为:

c.InjectJavaScript(thisAssembly, "AcctMgmt.SwaggerExtensions.inject.js")

答案 1 :(得分:1)

我花了很多时间试图找出具有相同名称的方法具有不同的行为。 Startup.Configure中的配置期望从wwwroot获得相对路径:

public void Configure(IApplicationBuilder app) {
    //
    app.UseSwagger();
    app.UseSwaggerUI(c => {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "Salon API v1");
        c.InjectJavascript("/SwaggerExtension.js");
    });
}

Get started with Swashbuckle and ASP.NET Core