最新的ServiceStack Swagger-ui NuGet包(v 4.0.30)没有部署swagger-ui资源文件夹

sla*_*gou 3 servicestack swagger-ui

我有一个使用ServiceStack和Swagger-UI的项目,我已经安装并使用v4.0.24安装它,最近升级到v4.0.30.

最新的ServiceStack.Api.Swagger NuGet包:https://www.nuget.org/packages/ServiceStack.Api.Swagger/ 似乎没有像以前的包一样安装/ swagger-ui资源文件夹.

我在VS2013中尝试了一个新的干净的servicestack asp.net解决方案.从nuget添加了ServiceStack.Api.Swagger,并在AppHost.cs中启用了插件:

public override void Configure(Container container)
{
    this.AddPlugin(new SwaggerFeature());
}
Run Code Online (Sandbox Code Playgroud)

swagger-ui功能似乎工作正常,但似乎资源(index.html,js,css等)嵌入在dll中,并且需要以最小值编辑index.html以配置Swagger- UI.

我错过了什么,或者这是最新的NuGet包中的错误?

我已经编辑了我的swagger v4.0.24 html,css和js,我可以安全地从ServiceStack Git(https://github.com/ServiceStack/ServiceStack/tree/master/src/ServiceStack.Api.Swagger)中提取这些内容.手动添加/合并到我的解决方案?

myt*_*thz 8

检查ServiceStack发行说明以了解每个版本中发生的变化是个好主意.

为Notes 在v4.0.30扬鞭的变化:

现在嵌入了所有静态资源

所有Swagger的静态资源都嵌入到单个ServiceStack.Api.Swagger.dll中,利用虚拟文件系统对嵌入式资源的透明支持,使Swagger作为一个独立的单元更容易管理和升级.

总之,您不再需要Swagger的资产,因为它们现在已嵌入到dll中.

虚拟文件系统

虚拟文件系统上的文档显示了如何覆盖嵌入式资源:

覆盖Swaggers嵌入式资源

ServiceStack的虚拟文件系统支持多个文件源位置,您可以通过将自己的自定义文件包含在与现有嵌入文件相同的位置来覆盖Swagger的嵌入文件.这使您可以通过简单地复制要自定义的/ swagger-ui/ swagger-ui-bootstrap文件并将它们放在网站目录中的相同路径来替换内置的ServiceStack嵌入式资源,即:

/swagger-ui
  /css
  /images
  /lib
  index.html

/swagger-ui-bootstrap
  index.html
  swagger-like-template.html
Run Code Online (Sandbox Code Playgroud)