在 Play Framework 视图模板中包含纯 HTML 页面

spa*_*rkr 3 html playframework

有没有办法在 Play 框架的视图模板中包含纯 html 页面?我有一个场景,其中有一个通用视图模板,并且在模板正文中,我想包含某些静态 html 页面。我知道我可以在某个模板中包含其他模板,但我不确定是否可以包含纯 html 页面?

Jam*_*per 5

一种选择是将静态 HTML 设为模板,例如创建myStaticPage.scala.html

<h1>Static page</h1>
<p>This page is static, though it is still a template.</p>
Run Code Online (Sandbox Code Playgroud)

然后是你的视图模板 myView.scala.html:

@(staticPage: Html)

<html>
  <head>...</head>
  <body>@staticPage</body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后在渲染模板的操作中:

def renderMyStaticPage = Action {
  Ok(views.html.myView(views.html.myStaticPage())
}
Run Code Online (Sandbox Code Playgroud)

您只需要确保您的 HTML 页面转义任何@带有@@.

另一方面,如果要包含的 HTML 页面更具动态性,则只需从文件/数据库/类加载器/无论它来自何处加载 HTML,例如:

def renderMyStaticPage = Action {
  val staticPage: String = // code to load static page here
  Ok(views.html.myView(Html(staticPage))
}
Run Code Online (Sandbox Code Playgroud)