如何在Play框架中使用IF语句仅将CSS用于1页

时间:2014-06-13 15:07:01

标签: html css scala playframework

我有一个特别是使用样式表的页面,但我网站中的其他页面都没有使用它,因此我不想将它放在全局main.scala.html文件中,因为所有页面都会引用它。如何在play框架中创建一个IF语句来说明当testpage.html处于活动状态时,使用teststylesheet.css?

2 个答案:

答案 0 :(得分:2)

根据the official docs,您可以使用 moreScripts和moreStyles等效 方法:

@(title: String, css: Html = Html(""), scripts: Html = Html(""))(content: Html)

<!-- language: lang-html -->
<!DOCTYPE html>

<html>
    <head>
        <title>@title</title>
        <!-- common stylesheets <link rel="stylesheet"> -->
        @css

        <!-- common scripts -->
        <script src="xyz.js")        
        @scripts
     </head>
     <body>
        @content
     </body>
</html>

并在子模板中

@css = {
    <link rel="stylesheet" media="screen" href='@routes.Assets.at("stylesheets/teststylesheet.css")'>
}

@scripts = {
    <script src='@routes.Assets.at("javascripts/test.js")' type="text/javascript"></script>    
}

@main("title", css, scripts) {
     <div class="bodyOfView">rest of templating...</div>
}

其他选项使用单独的布局,其中只包含指定页面所需的JS / CSS。

答案 1 :(得分:1)

在main.scala.html中找出我需要的东西:

@if(activeMenu.equals("pricing")){
    <link rel="stylesheet" href="@routes.Assets.at("stylesheetname.css")">}