我有一个html页面,我想在喷涂服务器中提供它。
我熟悉https://github.com/spray/spray/wiki/File-and-Resource-Directives
如何创建可以部署到Spray的存档(类似于可以部署到.war
目录的Tomcat的webapps
文件)?
如何使用SBT将文件从一个目录复制到另一个目录(就像我们有ant build工具的复制任务一样)
指的是“将从JAR文件提供服务。在这种情况下,客户端是一个打包在JAR存档中的目录.BTW这在dev模式下工作,也没有包装JAR。”
< / LI> 醇>我的项目结构就像
src/main/resources/<files to include in main jar here>
src/main/scala/<main Scala sources>
src/main/java/<main Java sources>
src/main/test/resources/<files to include in test jar here>
src/main/scala/<test Scala sources>
src/main/java/<test Java sources>
所以我需要保留名为“client”的目录。我需要保存我的.html文件和js文件我的html引用。
如果我在SBT交互模式下发出包命令,它会给我一个jar。如何从build.sbt或build.scala
运行该jar答案 0 :(得分:1)
如您所述,Spray可以提供静态内容。例如:
val myRoute =
get {
compressResponse()(getFromResourceDirectory("client")) ~
path("") {
getFromResource("client/index.html")
}
}
将从JAR文件提供。在这种情况下,client
是已打包在JAR存档中的目录。顺便说一句,这在开发模式下工作,也没有包装JAR。
运行基于Spray的应用程序 2种方式,可以使用嵌入式Spray-can服务器(JAR文件),也可以使用容器( WAR文件)。
如果您使用Tomcat或其他Web容器,则可以使用其中一个SBT插件创建常规WAR文件。例如,https://github.com/earldouglas/xsbt-web-plugin可以打包WAR文件。
如果您想在Spray-can服务器上运行您的Web应用程序,可以使用现成的模板:https://github.com/spray/spray-template。 BTW Spray在那里提供Jetty和Spray-can模板。
您始终可以使用其他SBT插件并创建自定义构建,以便将WAR或JAR文件中的所有内容打包。关于Spray-can的一件事是它基本上是一个普通的应用程序,它有一个主类,它启动一个服务,监听一些端口(8080)和一个提供请求的actor系统,所以你不需要任何web服务器或容器来运行它。