Scala Play 2.5 Controller类用于提供静态HTML

时间:2017-08-30 08:51:01

标签: scala angular playframework-2.5

我想从Scala Play控制器提供静态文件。我正在寻找能让我做类似下面这个例子的东西。

注意:这显然不起作用。 我很可能以错误的方式看待问题,但我不想重定向到app.html

def loadApplication(): EssentialAction = Action.sync { request =>
  val contents = Assets.contentsOf("/public/assets/app.html") //This doesnot return the contents, but that is what I want
  Ok(contents)
}

1 个答案:

答案 0 :(得分:1)

您可以使用Assets并通过它返回内容。你可能不得不调整路径:

class MyController @Inject() (assets: Assets) extends Controller {

  def loadApplication(): Action[AnyContent] = Action.async { request =>
    assets.at("/public/assets/", "app.html").apply(request)
  }

}

可在文档中找到更多信息:https://www.playframework.com/documentation/2.5.x/AssetsOverview#The-Assets-controller

另请注意,您可以将路径映射到资源,而不是静态地引用控制器中的文件,如下所示:

  

GET / assets / *文件controllers.Assets.at(path =" / public",file)