我的 Grails 配置文件中有三个环境块,类似于:
environments {
production {
grails.serverURL = "https://www.mysite.com"
}
development {
grails.serverURL = "http://localhost:8080/${appName}"
}
test {
grails.serverURL = "http://localhost:8080/${appName}"
}
}
... // more code
environments {
production {
authnet.apiId = "123456"
authnet.testAccount = "false"
}
development {
authnet.apiId = "654321"
authnet.testAccount = "true"
}
test {
authnet.apiId = "654321"
authnet.testAccount = "true"
}
}
... // more code
environments {
production {
email.sales = 'sales@mysite.com'
}
development {
email.sales = 'test@mysite.com'
}
test {
email.sales = 'test@mysite.com'
}
}
在控制器的某处:
println grailsApplication.config.grails.serverURL
println grailsApplication.config.authnet.apiId
println grailsApplication.config.email.sales
它打印出来:
http://localhost:8080/myapp
[:]
test@mysite.com
因此,由于某种原因,该应用程序无法从某些环境块中获取数据。环境块之外的东西很好。我注意到这个问题与几个不同的应用程序、不同的配置等有关。尝试使用 grailsApplication 和 ConfigurationHolder 来获取它。是 Grails 错误还是我做错了什么?我正在运行 Grails 1.3.6