<g: layoutBody /> не отображает стили, примененные к тегу <body>

Я создал простой макет, используя шаблон макета 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>

Теперь, насколько я понимаю, отображает содержимое тела. (Пожалуйста, поправьте меня, если я ошибаюсь). Теперь я применил пользовательский стиль к тегу каждой страницы. Но этот стиль не применяется к моему представлению. Например. У меня есть изображение, которое я хочу применить к телу. Но это не применяется. Когда я вставляю 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:layout? Я пытался найти в документации, но пока ничего не нашел. Дайте мне знать, если мой вопрос не ясен. Спасибо тебе!!

1 ответ

Решение

Я подозреваю, что это потому, что макет должен понимать, что у вас есть свойства, которые вы хотите предоставить для тега body. В документации Grails есть хороший пример использования свойства страницы для указания атрибута onload тега body.

Вот пример, модифицированный для ваших нужд.

расположение

    <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>

Другие вопросы по тегам