Grails资源插件与资产管道

时间:2017-05-16 07:33:30

标签: grails resources asset-pipeline

在发布这个问题之前,我在谷歌这个问题上遇到了麻烦,但发现显然我处于(极端)少数群体中,所以我显然错过了一些东西。我已尝试过多个场合将资产管道Grails插件合并到我的项目中,但每次我发现自己都回到了资源插件。结论:尽管资产管道插件提供了潜在的花哨功能,但我发现资源插件比“任何东西”资产管道更直观,更具表现力。

对我来说,最令人困惑的事情可能是资源在两者中的声明方式。例如,在资源插件中,我可以按如下方式定义fancybox资源:

'fancybox' {
    dependsOn 'jquery'
    resource url: '/js/fancybox/jquery.fancybox.css'
    resource url: '/js/fancybox/helpers/jquery.fancybox-buttons.css', attrs: [v: '2.1.5']
    resource url: '/js/fancybox/jquery.fancybox.js', attrs: [v: '2.1.5']
    resource url: '/js/fancybox/helpers/jquery.fancybox-buttons.js', attrs: [v: '2.1.5']
    resource url: '/js/fancybox/helpers/jquery.fancybox-media.js', attrs: [v: '2.1.5']
}

有。简单。这是fancybox'包',它取决于jquery。

但是对于资产管道,我必须声明一些奇怪的非标准惯例如下:

/*
*= require jquery.fancybox
*= require jquery.fancybox-buttons
*/

然后我需要在application.css的某个地方引用该文件,就好像通过魔法一样,资产管道将神奇地将它们与我一起使用一些错综复杂的逻辑组合起来,我必须继续在文档中查找以提醒我自己( 我甚至不知道上面是否正确,因为我永远无法让资产管道为我工作)。但是我的所有声明都是在多个.css文件中分解的,而不是像ApplicationResources.groovy这样的一个很好的一体化位置,我不知道其他插件是什么声明了我不知道的其他资产,而使用资源插件,如果它不在ApplicationResources.groovy中,则它不存在。

然而,正如我所说,我发现没有文章更喜欢资源插件。每个人似乎都在资产管道上'喝了Kool-Aid'。 我明显缺少什么神奇的职业?这似乎更令人费解和困惑。是什么给了什么?

1 个答案:

答案 0 :(得分:0)

我真的不认为你的问题有答案,因为你试图提出辩论而不是关注你想要解决的特定问题/问题。你已经遇到了问题,但没有以明确的方式讨论或给出你所尝试的内容,也许其他人可以指导你。

就资源到资产的变化而言,框架的运作方式是什么?事情发生了变化,因此框架继续前进。您仍然可以选择资源。

在资产中,你可以在application.js和css中定义结构,如果你禁用了树,那么它就不会加载我认为是你的问题之一的所有东西。

我对该主题进行了谷歌搜索,并且不确定您是否遇到过以下链接,非常值得阅读/看看:

https://www.slideshare.net/AliTanwir/grails-asset-pipeline-plugin

https://objectpartners.com/2015/01/06/grails-cdn-asset-pipeline-plugin-for-improving-web-site-performance/

https://github.com/bertramdev/grails-asset-pipeline/wiki/Why-asset-pipeline-over-grails-resources-plugin