使用spray-io构建我的第一个servlet非常简单。
但是从未找到标题中引用的资源。
<头> ... < script src =“javascript / jquery / jquery-1.9.1.js”/> ... < / head>
在哪个目录中必须放置那些资源,或者如何指示喷雾在那里查找?
简单的问题,但我无法弄清楚。
非常感谢
Girgl
答案 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)
}
}