如何在从Spray(或Akka-Http)提供html时解决缺少静态内容的问题?我的服务的基本网址是/api
(即使在这种情况下它应该是无关紧要的)。
这是我的路线
get {
pathPrefix("swagger") {
pathEndOrSingleSlash {
getFromResource("swagger-ui/index.html")
} ~
getFromResourceDirectory("swagger-ui")
}
}
当我打开它时,加载的html可以找到css和js文件
/api/swagger/
但是当我打开
/api/swagger
(不带斜线)
加载的html尝试从
获取内容 /api/css/reset.css
代替/api/swagger/css/reset.css
我应该如何重写我的路线以涵盖这两种情况?
答案 0 :(得分:2)
我最后添加了重定向。如果有人知道更优雅的解决方案,请发布。
pathPrefix("swagger") {
CachingDirectives.cachingProhibited {
pathEnd {
redirect("/api/swagger/", StatusCodes.TemporaryRedirect)
} ~
pathSingleSlash {
getFromResource("swagger-ui/index.html")
} ~
getFromResourceDirectory("swagger-ui")
}
}
答案 1 :(得分:2)
请改用redirectToTrailingSlashIfMissing
指令。