我想设置一个Spray路由来从目录中提供Web内容。
例如,以下网址应解析为同一文件。
http://mywebsite.com/path/to/thing
http://mywebsite.com/path/to/thing/
http://mywebsite.com/path/to/thing/index.html
应该从./web/path/to/thing/index.html
文件系统提供index.html文件如果明确指定了“index.html”,则以下路由有效。
pathPrefix("") {
getFromDirectory("./web/")
}
我如何在喷涂路线中表示这一点?
答案 0 :(得分:3)
假设您已经与pathPrefix
匹配“事物”,我认为您需要pathEndOrSingleSlash
,描述为here。我不认为Spray-routing会与隐含的“index.html”相匹配,但无论如何,如果你需要,你可以轻松地编写指令:
(pathEndOrSingleSlash | path("index.html")) { ... }
更新:
好的,从你的评论我想你只想采取指定的路径并从该目录提供文件。这样的事情(未经测试)?
path(Segment) { rawPath =>
getFromFile("web/" + if (rawPath endsWith "/") rawPath + "index.html" else rawPath)
}