如何防止grails在特定页面上链接的默认main.css

时间:2012-04-02 10:58:38

标签: grails

我有一个简单的网络应用程序,我在一起。

由&大,默认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 个答案:

答案 0 :(得分:3)

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规则可能更简单一些。 1}}阻止着陆页的<style>

<head>

答案 1 :(得分:1)

看一下grails 2.0.x中的resources插件。您可以定义包含特定javascript和CSS文件的模块,这些文件将被压缩,针对Web进行优化。在您选择的页面中,您可以包含所需的模块。在您的情况下,您可以在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>
相关问题