使用LESS with grails lesscss-resource

时间:2012-11-10 04:33:32

标签: grails plugins less

我找不到一个很好的解释来在我的grails应用程序中设置它。我正在使用最新版本的lessees-resource插件运行grails 2但是我找不到关于如何设置它的深入解释。

我在哪里放少量文件?

它将被编译为什么?

我应该如何链接到这个已编译的源?

如果这是一个简单的问题,我很抱歉,但我根本找不到好的文档。

为了具体到我需要的东西,我让整个TwitterBootstrap项目的文件更少。

我使用Theme.less来覆盖更改,方法是将所有文件导入到此文件中,并使更改独立于实际项目,以便更新引导程序。

/less
  Theme.less
  Bootstrap/ #The entire twitter bootstrap project

如何编译Theme.less以及如何在我的应用程序主布局中引用它

2 个答案:

答案 0 :(得分:6)

您必须在ApplicationResources.groovy文件(<your_project>/grails-app/conf文件夹)中声明资源文件。

看起来应该是这样的:

modules = {
    application {
        resource url:'js/application.js'
    }

    bootstrap {
        dependsOn 'jquery'
        resource url:'js/libs/bootstrap.js'
        resource url:'css/libs/bootstrap.less',attrs:[rel: "stylesheet/less", type:'css']
    }

    yourstyle {
        dependsOn 'bootstrap'
        resource url:'css/theme.less',attrs:[rel: "stylesheet/less", type:'css']
    }
}

请注意,您可以将较少的文件放在web-app文件夹中的任何位置,在此文件中配置它们的位置。

如果你覆盖Twitter Bootstrap,你可以做的另一件事是在theme.less文件的开头导入bootstrap:

@import "libs/bootstrap.less";

并在ApplicationResources.groovy中删除此资源声明。如果这样做,如果在项目运行时进行更改,则编译较少的文件将花费更长的时间(它必须编译较少的文件)。

要在布局上使用此模块(即main.gsp),请包含以下代码行:

<!doctype html>
    <head>
        ...
        <r:require module="yourstyle"/>
        <r:layoutResources />
    </head>
    <body>
        ...
        <r:layoutResources />
    </body>
</html>

您需要将layoutResources标记两次添加到您的页面,以获取资源和身体末端资源(因为您可以声明要包含资源的位置,默认情况下在{ {1}}标签)。您可以在http://grails-plugins.github.com/grails-resources/

了解有关Grails Resources如何工作的更多信息

请注意,“你的风格”已经取决于'bootstrap',所以你不需要在你的布局中包含它们。

答案 1 :(得分:0)

资源较少和资源较少的资源目前都没有(2014年3月)使用较少的1.6来构建bootstrap 3.1

你可以用同样的方式使用asual-lesscss-resources插件

bootstrap{
    defaultBundle 'bootstrap'
    resource url:[dir: 'less', file: 'bootstrap.less'], attrs:[rel: "stylesheet/less", type:'css']
    resource url: 'js/bootstrap/dropdown.js'
  }