【问题标题】:Custom CSS and JS in Grails pluginsGrails 插件中的自定义 CSS 和 JS
【发布时间】:2014-05-20 12:03:36
【问题描述】:

我正在构建一个 Grails 插件 (grails-myorg.zip),其中将包含我们组织中的每个 Grails 应用程序都应该使用的可重用代码/工件。这包括自定义 CSS/JS 文件,这些文件有助于为我们的应用提供一致的外观和感觉。

我想知道这里最好的做法是什么:

  • 创建一个grails-myorg-themes.zip插件,它只包含可重用的CSS和JS文件,然后将其作为主grails-myorg.zip插件的运行时插件/依赖项(使用BuildConfig.groovy);或
  • 将 CSS/JS 文件放在主 grails-myorg.zip 插件中,然后使用 Grails 资源插件为所有下游依赖项配置文件。

最终唯一的要求是:

只要开发人员将主要的 grails-myorg.zip 插件作为其应用插件的一部分,那么自定义 CSS/JS 文件将在运行时(通过 URL)可用于应用的 HTML 文件。这方式,他们有选项在他们的应用程序中包含CSS样式和其他JS东西 - 在这些公共文件中定义。

我应该使用哪种策略,为什么以及配置是什么样的?

【问题讨论】:

  • 女巫grails-myorg.zip会有什么功能?

标签: css grails grails-plugin grails-2.3 grails-resources-plugin


【解决方案1】:

如果grails-myorg 的唯一目的只是成为grails 应用程序的资源提供者,我认为不需要拥有grails-myorg-themes 插件。

第二个选项看起来像是已经布置好的场景的良好开端。如果资源发生变化和/或更新,升级插件版本就足够了。

什么:

  • 插件中不需要资源插件,应用程序应该使用资源插件。如果 grails-myorg 插件中使用了所有资源插件,则应在构建配置中使用 export = false 将其排除在包中。
  • 创建可在应用程序中轻松使用的业务特定资源模块。例如:

插件资源文件应如下所示,突出显示dashboard(例如,反映品牌的企业级模块)作为一个模块,可以在特定页面/模板的应用程序中为required

//MyOrgResources.groovy
modules = {
    dashboard {
        resource url: 'js/dashboard/dashboard.js'
        resource url: 'css/dashboard/dashboard.css'
    }
}

常见的特定领域资源等等。

原因:
该插件不言自明地提到“任何与域或模块相关的企业级资源”都可以从此插件中引用。最后,只有当插件被记录并在团队之间适当共享时,这才是一个有用的想法,这样就没有人重新发明轮子了。

【讨论】:

  • +1。我的观点是,如果你想按功能将它们分开,拆分是好的,并且主插件与UI无关。
  • 感谢@dmahapatro (+1) - 但是 (1) 我如何为任何使用此插件的 Grails 应用程序制作 dashboard 一个 required 模块? (2)我想我不完全理解资源插件:如果插件中定义了 CSS/JS 模块,为什么我需要使用 app 中的资源插件而不是插入?再次感谢!
  • 1.与应用程序dependOn 任何其他模块中的任何模块相同。您可以参考有关 dependsOn 的文档。 2. 两者都可以。 dahsboard 模块不仅可以在需要时在插件中使用,还可以在使用插件的应用程序中使用。关于资源插件的使用,可以通过going through the docs in detail深入了解。
猜你喜欢
  • 2014-04-04
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 2013-11-14
  • 2016-05-19
  • 2013-01-10
  • 2015-06-23
相关资源
最近更新 更多