我想要运行一个名为“local”的自定义环境......就像在本地开发中一样。在将战争部署到“共享”开发服务器之前,我会使用此配置(例如数据库连接)。但我注意到它缺少标准Grails“开发”环境的行为,例如刷新浏览器时无法使用GSP更改。
所以这让我想知道你如何改变自定义环境的行为?如何将“开发”的所有设置复制到另一个环境?
答案 0 :(得分:5)
您可以在指定run-app标志的自定义环境中启用已修改gsp的重新加载:
-Dgrails.gsp.enable.reload=true
答案 1 :(得分:1)
我认为自动重新加载与环境无关。如果执行grails run-app
,无论您在哪个环境下运行,都会发生重新加载。换句话说,所有
grails dev run-app
grails prod run-app
grails test run-app
另一方面,如果使用grails war
构建战争,然后部署它,则不会重新加载。因此重新加载取决于您运行应用程序的方式,而不是环境。定义与dev类似的自定义环境的最简单方法是定义一组默认配置,然后有选择地覆盖每个环境的设置,例如。
//default config
myApp {
userRoleName = 'ROLE_USER'
adminRoleName = 'ROLE_ADMIN'
dateFormat = 'yyyy-MM-dd'
}
environments {
// config overrides for dev
development {
myApp.dateFormat = 'yyyy/MM/dd'
}
// config overrides for local
local {
myApp.dateFormat = 'MM/yy/dd'
}
}