Как предотвратить использование main.css по умолчанию для Grails на определенной странице? - PullRequest
1 голос
/ 02 апреля 2012

У меня есть простое веб-приложение, которое я создаю вместе.

По большому счету, grails по умолчанию main.css подходит для всех страниц с лесами.

Однако яхочу подавить это и использовать разные встроенные CSS для целевой страницы.

Как настроить grails, чтобы не связывать main.css на конкретной странице?

HTML очень прост, и не содержит специальной разметки Grails:

<!doctype html>
<html>
<head>
<meta name="layout" content="main" />
<title>My landing page</title>
<style type="text/css" media="screen">

body
{
background-color: #fff;
}
img {
    display: block;
    margin: auto;
}

</style>
</head>
<body>
    <img alt="Welcome!"
        src="${resource(dir:'images',file:'Landing.png') }">
</body>
</html>

Кроме того - main.css связана просто не по правилам, или какая-то конфигурация скрывается где-то, чего я не заметил?(Я выполнил поиск, но нигде не смог его найти.)

Может кто-нибудь указать, где в документах говорится об этих соглашениях?

Ответы [ 2 ]

3 голосов
/ 02 апреля 2012

main.css включено в вашу целевую страницу, потому что вы указали, что ваша целевая страница основана на основном макете

<meta name="layout" content="main" />

этот макет определяется grails-app/views/layouts/main.gsp и включает main.css, скорее всего, с таким тегом на <head> страницы:

<link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}" type="text/css">

Если вы удалите:

<meta name="layout" content="main" />

Ваша целевая страница больше не будет основываться на основном макете, поэтому она не будет содержать ничего определенного в нем (например, main.css).

Однако, вместо того, чтобы полностью удалять макет, чтобы предотвратить включение main.css, может быть проще переопределить правила CSS, которые вы хотите использовать на странице макета, включив пользовательские правила в блок <style> в <head> целевой страницы

<style type="text/css">

  body {
  /* styles in here override styles from main.css */
  }

</style>
1 голос
/ 02 апреля 2012

Взгляните на плагин ресурсов в Grails 2.0.x. Вы можете определить Модули, состоящие из определенных файлов JavaScript и CSS, которые будут сжаты и оптимизированы для Интернета. На странице по вашему выбору вы можете включить модуль, который вы хотите. В вашем случае вы можете добавить такой случай в main.gsp

<g:if test="${controllerName == "landing"}">
    <link rel="stylesheet" href="${resource(dir: 'css', file: 'custom.css')}"/>
</g:if>
<g:else>
    <link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}"/>
</g:else>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...