【问题标题】:Grails resource plugin and using different resources per environmentGrails 资源插件并在每个环境中使用不同的资源
【发布时间】:2013-02-22 23:18:28
【问题描述】:

在我当前的 grails 项目中,我们正在使用 UglifyJS 缩小 JavaScript 文件,并且还在开发环境中使用这些缩小的资源。正如您所想象的那样,在缩小版本上进行调试有点痛苦,修复未缩小版本中的错误,缩小并再次调试。因此,我想在开发环境中包含未缩小的版本,在生产环境中包含缩小的版本。所以我尝试调整 ApplicationResources.groovy 以获得以下方案:

environments {
    development {
        modules = {
            core {
                resource url:"js/core.js"
            }
        }
    }
    production {
        modules = {
            core {
                resource url:"js/core.min.js"
            }
        }
    }
}

这不知何故不起作用并引发异常,例如

Caused by GrailsTagException: Error executing tag <r:layoutResources>: No module found with name [core]

我在这里做错了什么?

更新:

我不确定我是否理解正确。我尝试了以下也不起作用:

更新:

添加 id 可以解决问题 :)

ApplicationResources.groovy

modules = {
    core {
        resource id: 'core', url:"js/core.min.js"
    }
}

DevelopmentResources.groovy

environment {
    development {
        modules = {
            overrides {
                core {
                    resource id: 'core', url:"js/core.js"
                }
            }
        }
    }
}

【问题讨论】:

    标签: grails resources minify


    【解决方案1】:

    尝试在单独的文件中定义 dev 和 prod 资源模块。比如 StaticResources.groovy 和 ProductionResources.groovy。

    每个资源文件最终都会为 Grails 提供一个“模块”闭包,然后 Grails 会结合每个文件提供的闭包中的定义来生成最终配置。

    这是complete nabble discussion

    【讨论】:

    • 我不确定我是否理解正确,但我添加了我在原始帖子中尝试过的内容,但它也不起作用:/
    • 好吧,所以诀窍是分配 ID。然后你指出我的解决方案效果很好。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 2015-12-16
    • 2013-01-09
    • 1970-01-01
    • 2012-02-18
    • 2012-02-23
    • 1970-01-01
    相关资源
    最近更新 更多