Grails从config.groovy中访问当前环境
使用Grails OAuth插件需要在Config.groovy中提供绝对回调URL。但是,对于每个环境,我有不同的服务器URL 有没有一种方法可以从Config.groovy内部获取当前环境,下面是一个我想要做的示例:Grails从config.groovy中访问当前环境,grails,configuration,Grails,Configuration,使用Grails OAuth插件需要在Config.groovy中提供绝对回调URL。但是,对于每个环境,我有不同的服务器URL 有没有一种方法可以从Config.groovy内部获取当前环境,下面是一个我想要做的示例: def devServerUrl = 'http://dev.example.com' def prodServerUrl = 'http://prod.example.com' def currentServerUrl = grailsApplication.metadata
def devServerUrl = 'http://dev.example.com'
def prodServerUrl = 'http://prod.example.com'
def currentServerUrl = grailsApplication.metadata.environment == 'development' ? devServerUrl : prodServerUrl;
environments {
development {
grails {
serverURL = devServerUrl
}
}
production {
grails {
serverURL = prodServerUrl
}
}
}
oauth {
providers {
runkeeper {
api = RunKeeperApi
key = 'key'
secret = 'secret'
callback = currentServerUrl + '/oauth/runkeeper/callback'
}
}
}
有什么想法吗?谢谢 试试这个:
def currentServerUrl = Environment.current.name == 'development' ? devServerUrl : prodServerUrl;
我认为为每个环境设置不同的
grails.serverURL
,然后执行以下操作更为简洁:
callback = "${grails.serverURL}/oauth/runkeeper/callback"
我认为Config.groovy中的Environment.current工作得很好,谢谢!我还必须导入Config.groovy顶部的grails.util.Environment,或者使用内置常量:Environment.current==Environment.DEVELOPMENT