静态文件在“ sbt运行”中运行良好。但是它在由sbt程序集构建的docker中不起作用。
我正在使用Play 2.5.12,我只需要提供一个静态文件,因此我将文件添加到公用文件夹并在route.conf上添加路由,如下所示。
获取/googlee.html controllers.Assets.at(path =“ / public”,file =“ google.html”)
如果我打开带有“ sbt run”的应用程序,它将很好地工作。 但是当我在docker上启动它时,它不起作用。
我将日志级别更新为DEBUG,但是它没有显示任何有关该错误的信息。 我猜这是关于“ sbt程序集”的问题,但是我不知道是什么原因引起的。
以下是有关build.sbt中“ sbt程序集”的摘要
assemblyJarName in assembly := "my-app" + "-assembly.jar",
assemblyMergeStrategy in assembly := {
case PathList("newrelic-agent") => MergeStrategy.discard
case PathList(ps @ _*) if ps.last endsWith ".class" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".java" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".yaml" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".yml" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith "excludes" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".txt" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".properties" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".json" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".jar" => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".html" => MergeStrategy.first
case "application.conf" => MergeStrategy.concat
case "CHANGELOG" => MergeStrategy.discard
case manifest if manifest.contains("MANIFEST.MF") => MergeStrategy.discard
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
},