【问题标题】:How does spray find resources - e.g. javascript喷雾如何找到资源 - 例如。 javascript
【发布时间】:2013-11-15 20:46:12
【问题描述】:

使用 spray-io 构建我的第一个 servlet 很简单。

但是标题中引用的资源永远找不到。

... ...

这些recsources必须放在哪个目录中,或者如何引导spray查找那里?

简单的问题,但我想不通。

非常感谢x

少女

【问题讨论】:

    标签: spray


    【解决方案1】:

    对于 Spray 路由,我使用这些指令 -

    pathPrefix("css") { 获取 { getFromResourceDirectory("css") } } ~
    pathPrefix("js") { getFromResourceDirectory("js") } } ~ 

    “css”和“js”必须在src/main/resources目录中

    【讨论】:

    • 感谢 Bharadwaj,一个不错的简单答案。
    【解决方案2】:

    如果您使用的是喷雾路由,那么它应该很容易,只需为您的静态资源提供一个路由。例如,您可以执行以下操作:

    假设您的静态资源位于/css/js/img 文件夹中:

    def staticPrefixes = List("css", "js", "img") map { pathPrefix(_) } reduce { _ | _ }
    

    使用pathPrefix,您将每个路径都设为不匹配路径的前缀。然后你需要一个指令来从请求中提取静态文件的路径,例如你可以这样做:

    def stripLeadingSlash(path: String) = if (path startsWith "/") path.tail else path
    
    val staticPath =
      staticPrefixes &
      cache(routeCache()) &
      extract(ctx ⇒ stripLeadingSlash(ctx.request.uri.path.toString))
    

    然后构建你的路由来管理你的资源:

    val staticRoutes =
        get {
          staticPath { path ⇒
            getFromResource(path.toString)
          }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多