<g:layoutbody>不会将样式应用于标记</g:layoutbody>

时间:2014-04-04 05:11:58

标签: css html5 grails layout sitemesh

我使用grails默认布局模式创建了一个简单的布局。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

        <title><g:layoutTitle default="my website" /></title>

        <meta name="viewport" content="width=device-width, initial-scale=1.0" />

        <link rel="shortcut icon" href="${resource(dir: 'images', file: 'favicon.ico')}" type="image/x-icon" />
        <link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}" type="text/css" />

        <g:layoutHead />
            <r:layoutResources />

    </head>
    <body id="mainContainer">

        <g:render template="/templates/headerTemplate"></g:render>
        <g:render template="/templates/menuTemplate"></g:render>
        <g:layoutBody />
        <r:layoutResources />

    </body>
</html>

据我所知,&lt; g:layoutBody /&gt;呈现身体内容。 (如果我弄错了,请纠正我)。现在我已经将自定义样式应用于&lt; body&gt;每页的标签。但样式未应用于我的渲染视图。例如。我有一个我想要应用于身体的图像。但这并未得到应用。当我在体内插入一个div并对其应用相同的图像时,它会被应用到它上面。

<!DOCTYPE html>
<html>
<head>
    <meta name="layout" content="mainLayout"/>
    <title>Match List</title>
    <script type="text/javascript" src="${resource(dir:'js',file:'matchDetailsJS.js')}"></script>
</head>
<body class="myclass">    </body>
</html>

我的css文件被包含在内,因为我的样式正在应用于其他元素。

我错过了什么?我的g:布局有问题吗?我尝试在文档中找到,但到目前为止没有找到任何东西。 如果我的问题不明确,请告诉我。 感谢你!!

1 个答案:

答案 0 :(得分:1)

我怀疑这是因为布局需要了解您希望为body标签提供的属性。 Grails documentation有一个很好的例子,说明如何使用page属性来指定body标签的onload属性。

以下是根据您的需求修改的示例。

布局

                      

    <title><g:layoutTitle default="my website" /></title>

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <link rel="shortcut icon" href="${resource(dir: 'images', file: 'favicon.ico')}" type="image/x-icon" />
    <link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}" type="text/css" />

    <g:layoutHead />
        <r:layoutResources />

</head>
<body id="mainContainer" class="${pageProperty(name:'body.class')">

    <g:render template="/templates/headerTemplate"></g:render>
    <g:render template="/templates/menuTemplate"></g:render>
    <g:layoutBody />
    <r:layoutResources />

</body>