2012-04-02 54 views
1

我有一個簡單的Web應用程序,我將它們放在一起。如何防止在特定頁面上鍊接grails的默認main.css

通過&大,默認的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純粹鏈接的約定的,或者是有一些配置潛伏的地方我還沒有發現? (我做了搜索,但無法在任何地方找到它)。

有人可以參考文檔中談論這些約定的地方嗎?

+0

是不是(= main.css)在main.gsp中定義? main.gsp是這個謎題中的一部分,但如何不導入main.css並不是我所做的。 – marko 2012-04-02 11:28:39

回答

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被包括在內,它可能是簡單的通過在一個<style>塊在<head>自定義規則只覆蓋要cusomise佈局頁面上的CSS規則的着陸頁

<style type="text/css"> 

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

</style> 
1

看看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> 
相關問題