我使用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:布局有问题吗?我尝试在文档中找到,但到目前为止没有找到任何东西。 如果我的问题不明确,请告诉我。 感谢你!!
答案 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>