如何将文件夹及其内容添加到 Playframework 和 Heroku 的标准路径?

How to add a folder and its content to the standard paths of Playframework and Heroku?

我有一个 Scala Play 框架 2.7.x 我在 Heroku 中部署的应用程序。我使用 Lucene 为 WebApp 建立索引,由于 Lucene 中没有 JdbcDirectory,我需要使用它们的 FSDirectory 来代替,这会导致 Heroku 出现问题,因为我无法在 [=12] 下生成索引文件=] 在 Heroku 中,否则每次都会被清除。这使我想到了两种可能的解决方案,这是更简单的一种:

  1. 部署前在本地生成$APP_HOME/lucene-index保存在GIT,此文件夹将与$APP_HOME/app$APP_HOME/public.[=31=同级]
  2. 整合新的非标准播放文件夹 $APP_HOME/lucene-index 以便 Heroku 复制它(此 OP 的目的)。
  3. 启动时,应用程序会检查此文件夹,如果不存在(本地案例),则会生成它,否则会打开它(Heroku 案例)。

我是否需要在 #2 上做一些特殊的事情才能让 Heroku 将 $APP_HOME/lucene-index/ 识别为需要与应用程序打包在一起的文件夹?例如我不想将 $APP_HOME/lucene-index/ 放在 $APP_HOME/conf/ 下才能正常工作。

在这里我找到了 Anatomy of a Play 2.7.x application 但没有关于如何向其添加额外路径文件夹的说明。

我寻求的解决方案是将 ./lucene-index 文件夹作为播放区的一部分。这是通过更改 build.sbt 文件添加来完成的:

//********************************************************
// Add lucene-index to the dist
//********************************************************

import com.typesafe.sbt.packager.MappingsHelper._
mappings in Universal ++= directory(baseDirectory.value / "lucene-index")

现在它部署到 Heroku 并且一切正常。