这个问题是由于 Swagger 文件引用的其他文件类型不正确导致的。要解决这个问题,需要在代码中添加以下内容:
implicit val jsonStreamingSupport: JsonEntityStreamingSupport = EntityStreamingSupport.json()
.andThen(Flow[ByteString].map(bs => s"""${bs.utf8String}""")
.map(ByteString(_)))
val swaggerJson: String = Source.fromResource("swagger.json").getLines().mkString("\n")
path("swagger.json") {
get {
complete(HttpEntity(ContentTypes.`application/json`, swaggerJson))
}
} ~ path("") {
getFromResource("swagger-ui/index.html")
} ~ getFromResourceDirectory("swagger-ui")
上面的代码使用了 jsonStreamingSupport
以及一个自定义的 swaggerJson
,并将其与路径 /swagger.json
相关联。然后在路劲 / 中使用了 getFromResource("swagger-ui/index.html")
,最后使用 getFromResourceDirectory("swagger-ui")
为静态文件提供服务。
这些更改将解决应用程序在引用其他文件时出现 406 application/octet-stream 错误的问题。