喷雾如何找到资源 - 例如JavaScript的

时间:2013-11-15 20:46:13

标签: spray

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

但是从未找到标题中引用的资源。

<头> ... < script src =“javascript / jquery / jquery-1.9.1.js”/> ... < / head>

在哪个目录中必须放置那些资源,或者如何指示喷雾在那里查找?

简单的问题,但我无法弄清楚。

非常感谢

Girgl

2 个答案:

答案 0 :(得分:10)

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

pathPrefix("css") { get { getFromResourceDirectory("css") } } ~
pathPrefix("js") { get { getFromResourceDirectory("js") } } ~ 

“css”和“js”必须位于src/main/resources目录

答案 1 :(得分:0)

如果您正在使用喷涂路由,那么它应该很简单,只需为您的静态资源提供路由。例如,您可以执行以下操作:

假设您的静态资源位于/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)
      }
    }