scala - 加载的 html 从父目录请求静态内容

标签 scala spray akka-http

如何解决从 Spray(或 Akka-Http)提供 ​​html 时缺少静态内容的问题?我的服务的基本 url 是 /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

我应该如何重写我的路线以涵盖这两种情况?

最佳答案

我最终添加了重定向。如果有人知道更优雅的解决方案,请发布。

pathPrefix("swagger") {
  CachingDirectives.cachingProhibited {
    pathEnd {
      redirect("/api/swagger/", StatusCodes.TemporaryRedirect)
    } ~
      pathSingleSlash {
        getFromResource("swagger-ui/index.html")
      } ~
      getFromResourceDirectory("swagger-ui")
  }
}

关于scala - 加载的 html 从父目录请求静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28045993/

相关文章:

mysql - 如何将数据从csv加载到Spark中的mysql数据库?

scala - 如何通过使用Spark结构化流连续监视目录

scala - 如何匹配路由中的特定接受 header ?

scala - Akka HTTP 2.0 使用 SSL (HTTPS)

java - akka.UnsupportedAkkaVersion : Current version of Akka is [2. 5.14],但 akka-http 需要版本 [2.5.26]

scala - 在父类(super class)中实现宏并在子类中扩展它

java - 如何在 Joda-Time 时间戳中保留时区?

json - 将 DateTime 转换为 JSON 字符串

scala - 使用 akka-http 执行 OAuth2 身份验证的最佳方法是什么?