将 Finatra 与 SBT 一起使用,在哪里搜索文件?
Using Finatra with SBT, where are the files searched for?
Finatra 在哪里搜索文件?当我写
response.ok.file(...)
文件应该放在哪个文件夹中才能找到?
在 docs 中它说 "classpath root" 无处可寻(因为它不存在,严格来说)。
它将在资源文件夹中搜索
src/main/resources
在下面的示例中,资源中有一个 web 文件夹
get("/:*") { request: Request =>
response.ok.fileOrIndex(
s"web/${request.params("*")}",
"web/index.html")
}
如果您使用的是 intellijIdea,则必须确保配置中定义的所有资源类型:
编译器->资源模式
否则编译时不会复制到输出文件夹
将从资源文件夹中获取的文件复制到以下位置:
target/scala-2.12/classes
对于 Scala 2.12,但对于将在 运行 期间创建的文件,此路径将不可用,即进程将仅查找在执行 sbt run
之前创建的文件。对于根项目和子项目都是如此(这取决于 运行 的执行位置)。
如果您需要始终加载文件,则需要设置标志 -local.doc.root
。
Finatra 在哪里搜索文件?当我写
response.ok.file(...)
文件应该放在哪个文件夹中才能找到?
在 docs 中它说 "classpath root" 无处可寻(因为它不存在,严格来说)。
它将在资源文件夹中搜索
src/main/resources
在下面的示例中,资源中有一个 web 文件夹
get("/:*") { request: Request =>
response.ok.fileOrIndex(
s"web/${request.params("*")}",
"web/index.html")
}
如果您使用的是 intellijIdea,则必须确保配置中定义的所有资源类型:
编译器->资源模式
否则编译时不会复制到输出文件夹
将从资源文件夹中获取的文件复制到以下位置:
target/scala-2.12/classes
对于 Scala 2.12,但对于将在 运行 期间创建的文件,此路径将不可用,即进程将仅查找在执行 sbt run
之前创建的文件。对于根项目和子项目都是如此(这取决于 运行 的执行位置)。
如果您需要始终加载文件,则需要设置标志 -local.doc.root
。