Grails 2.0 改变了它使用 grails.serverURL 进行开发和测试环境的方式(如manual http://grails.org/doc/2.0.x/guide/single.html#upgradingFromPreviousVersionsOfGrails)。不过,我已经有过好几个problems https://stackoverflow.com/questions/9187891/grails-2-0-deploying-war-to-remote-server-tomcat-not-connecting与 Tomcat 上的生产部署有关的 serverURL。 serverURL(生产模式)似乎有几个选项:
(补充)这个设置只是“烟雾和镜子”,因为 Tomcat 和 Jetty 有方法来控制如何处理应用程序的 URL,一直到“应用程序”级别。
使用它来指定服务器(如 Config.groovy 中的“TODO”所示)
不要按照指示使用它here https://stackoverflow.com/questions/8933356/how-do-i-set-grails-serverurl-in-an-enterprise-environment-when-i-dont-know-the由 Grails 贡献者之一提出,即“删除 serverURL 属性并让 Grails 生成相对于当前正在运行的应用程序的 url 应该始终是安全的。”目前尚不清楚这是否会扩展到生产环境(当不生成电子邮件时)。
- 使用另一种方法,即 grails.app.context,该方法没有记录在 Grails 2.0 手册中,但在某些参考文献中进行了描述,here http://ca.rroll.net/2009/03/27/configuring-the-grails-root-application-context/ and here http://jira.grails.org/browse/GRAILS-2534.
您能否澄清 Jetty 和 Tomcat(生产模式)中 serverURL 和 app.context 的正确使用?
Thanks
好问题!我只是在寻找获得实际的正确方法serverURL
不需要明确地在 Config.groovy 中配置它(在 Grails 2.1 应用程序中)。
从 Grails 2.0 开始,有一个超级有用的类,叫做LinkGenerator http://grails.org/doc/2.0.x/api/org/codehaus/groovy/grails/web/mapping/LinkGenerator.html您几乎可以在任何地方使用它,例如在服务中:
import org.codehaus.groovy.grails.web.mapping.LinkGenerator
Class MyService {
LinkGenerator grailsLinkGenerator
String serverUrl() {
// Generate: http://localhost:8080/link-generator
grailsLinkGenerator.serverBaseURL
}
}
感谢哈基先生blogging http://mrhaki.blogspot.fi/2012/01/grails-goodness-generate-links-outside.html对这个!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)