如何在 Play Framework 的 head 和 body 部分添加 HTML 内容?

How to add HTML content in both head and body sections in Play Framework?

在使用 Play Framework 2 时,我经常使用 "master page" (main.scala.html),其中我保留了 body 的一部分稍后由另一个页面添加(假设 content.scala.html)。

我遇到过(好几次)那个页面我想在头部添加一些HTML(比如.css文件)在使用 main 的具体页面中。我怎么能用两个 HTML 部分调用 "master page"?

提前致谢!

您可以在主文件的末尾添加一个附加参数(sample in documentation)

@(param1: String, moreHeaders = Html(""))(content)
<html>
    <head>
        <!-- Your default headers here -->
        @moreHeaders
    </head>
    <body>
        @content
    </body>
</html>

然后在您需要添加额外的文件中 headers 您使用变量定义它们:

@moreHeaders = {
    <script src="path/to/file.js"></script>
    <!-- (...) -->    
}

@main("First parameter", moreHeaders) {
    <p>Hi</p>    
}

由于 moreHeaders 有一个默认值,当您不想添加额外的 headers 时,您可以省略它:

@("First parameter") {
    <p>Hi</p>    
}