如何使用Grails资产管道插件对JS和CSS进行分组?

如何使用Grails资产管道插件对JS和CSS进行分组?,grails,asset-pipeline,Grails,Asset Pipeline,我目前正在使用Grails,我有许多定义如下的模块: bootstrap { resource url:'js/libs/bootstrap/bootstrap.min.js' resource url:'css/libs/bootstrap/bootstrap-responsive.css' resource url:'css/libs/bootstrap/bootstrap-glyphicons.css' resource url:'css/libs/boot

我目前正在使用Grails,我有许多定义如下的模块:

bootstrap {
    resource url:'js/libs/bootstrap/bootstrap.min.js'
    resource url:'css/libs/bootstrap/bootstrap-responsive.css'
    resource url:'css/libs/bootstrap/bootstrap-glyphicons.css'
    resource url:'css/libs/bootstrap/bootstrap.min.css'
}
这非常方便,因为它将Javascript和CSS文件组合到一个概念性的引导模块中

我现在正在研究,似乎文件只能
需要
相同类型的其他文件,这意味着我现在有两个依赖树(CSS&JS),而不是一个,这是一个问题,因为存在相互依赖,例如bootstrap.JS依赖于bootstrap.CSS


资产管道插件是否允许声明类型间依赖关系?如果不是,解决这个问题最好的办法是什么?

< P>我不认为这是个问题。分别组织
JS
CSS
文件(即使两者属于同一个包/产品,如Bootstrap)是一件好事,如果
JS
无法引用
CSS
,请更改URI

在我看来,如果你想在Grails中使用Bootstrap,试试twitter boostrap


签出我的博客文章重新收集,如果你想要一个例子,签出我使用Twitter引导所做的项目。

资产管道插件的全部要点是将所有js文件合并到一个缩小文件中,将所有css文件合并到一个缩小文件中。因为,您在一个文件(全部)中交付整个js/css内容,没有理由声明依赖项,因为所有内容都交付给客户端。可以在资源插件中定义依赖项的原因是,它不会一次发布所有js/css内容,而是基于每页。。。这在执行asset-pipeline时显然是不必要的。这听起来不对,因为您可以在不同的页面上包含不同的JS文件,每个文件都有不同的依赖项。除此之外,在你所有的页面中包含每一个页面的CSS和JS似乎是个坏主意:除了我所在的页面之外,为什么我还需要其他页面的CSS或JS?当然,你可以在不同的页面中包含不同的js文件,但是如果你这样做了,资产管道就没有资源插件的好处了。与性能点相反的是正确的:只有一个js文件与第一个请求一起加载,由于浏览器缓存,后续页面根本不会加载任何js。此外,首先只需要发出一个http请求,而不是每个页面都有大量http请求(浏览器只能并行地发出有限数量的查询)。这是HTTP头与有效负载的比率,在这里发挥作用。这是值得思考的,谢谢。在使用资产管道时,我太错过资源插件的这一特性了