Grails 资源插件与资产管道



在发布这个问题之前,我不厌其烦地谷歌了这个问题,但发现显然我属于(极端)少数,所以我显然错过了一些东西。我不止一次尝试将资产管道Grails插件合并到我的项目中,但每次我发现自己都恢复到资源插件。底线:我发现资源插件比"一切顺利"的资产管道更直观和富有表现力,尽管资产管道插件提供了底层的花里胡哨。

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

'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']
}

那里。简单。这就是花哨的盒子"包",它取决于jquery。

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

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

然后我需要在应用程序.css中的某个地方引用该文件,就像变魔术一样,资产管道会神奇地将它们与一些复杂的逻辑结合起来,我必须在文档中不断查找以提醒自己( 我什至不知道上述是否正确,因为我永远无法让资产管道为我工作)。然而,我所有的声明都分解在多个.css文件中,而不是像ApplicationResources.groovy这样的一个很好的多合一位置,我不知道其他插件在声明我不知道的其他资产,而对于资源插件,如果它不在ApplicationResources.groovy中,它就不存在。

然而,正如我所说,我没有发现任何文章更喜欢资源插件。每个人似乎都"喝醉了资产管道上的Kool-Aid"。我明显缺少的魔术专业人士是什么?它似乎更加复杂和混乱。什么给?

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

就从资源到资产的转变而言,这不是框架的工作方式吗?事情发生了变化,所以框架继续前进。您仍然可以选择资源。

在资产中,您可以在应用程序.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

最新更新