Grails资源插件并使用每个环境不同的资源

时间:2013-02-21 18:34:32

标签: grails resources minify

在我目前的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"
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:6)

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

  

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

这是complete nabble discussion

相关问题