如何将文件夹及其内容添加到 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 中,否则每次都会被清除。这使我想到了两种可能的解决方案,这是更简单的一种:
- 部署前在本地生成
$APP_HOME/lucene-index
保存在GIT,此文件夹将与$APP_HOME/app
和$APP_HOME/public
.[=31=同级]
- 整合新的非标准播放文件夹
$APP_HOME/lucene-index
以便 Heroku 复制它(此 OP 的目的)。
- 启动时,应用程序会检查此文件夹,如果不存在(本地案例),则会生成它,否则会打开它(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 并且一切正常。
我有一个 Scala Play 框架 2.7.x 我在 Heroku 中部署的应用程序。我使用 Lucene 为 WebApp 建立索引,由于 Lucene 中没有 JdbcDirectory
,我需要使用它们的 FSDirectory
来代替,这会导致 Heroku 出现问题,因为我无法在 [=12] 下生成索引文件=] 在 Heroku 中,否则每次都会被清除。这使我想到了两种可能的解决方案,这是更简单的一种:
- 部署前在本地生成
$APP_HOME/lucene-index
保存在GIT,此文件夹将与$APP_HOME/app
和$APP_HOME/public
.[=31=同级] - 整合新的非标准播放文件夹
$APP_HOME/lucene-index
以便 Heroku 复制它(此 OP 的目的)。 - 启动时,应用程序会检查此文件夹,如果不存在(本地案例),则会生成它,否则会打开它(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 并且一切正常。