Grails 插件中的自定义 CSS 和 JS

Posted

技术标签:

【中文标题】Grails 插件中的自定义 CSS 和 JS【英文标题】:Custom CSS and JS in Grails plugins 【发布时间】: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会有什么功能? 【参考方案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深入了解。

以上是关于Grails 插件中的自定义 CSS 和 JS的主要内容,如果未能解决你的问题,请参考以下文章

Grails 资源标签生成错误链接

如何处理 grails spring-security-rest 插件中的自定义身份验证异常?

Grails 中的自定义验证器中的异常

Grails Fields插件显示的自定义字段

Grails 安全插件自定义重定向

使用 grails 2.2.0 和资源插件找不到自定义 jquery css 图像