2009-06-11 53 views
0

我试图在Grails服务器的页面上显示一个Java applet。我使用的是Sun的得心应手的JavaScript代码段用于显示小程序:更改grails.serverURL对createLinkTo([...],绝对:'true')没有影响?

<script src="http://java.com/js/deployJava.js"></script> 
<script> 
deployJava.runApplet({codeBase:"${createLinkTo(dir:'applet', absolute:'true')}", 
    archive:"${createLinkTo(dir:'com/steve/applet', file='applet.jar', absolute:'true')}", 
    code:"com.steve.Applet.class", 
    width:"500", height:"500"}, null, "1.5"); 
</script> 

Config.groovy中,我设置了不同的serverURLs:

environments { 
    production { 
     grails.serverURL = "http://10.0.xx.xxx/" 
    } 
    development { 
     grails.serverURL = "http://10.0.yy.yyy:8080/" 
    } 
} 

然而,()由createLinkTo创建的链接都具有“ http://localhost:8080“而不是我指定的URL。 (即它们看起来像“http://localhost:8080/my-app/applet”。)这是一个错误吗?有没有解决方法?

回答

0

我找到了解决方法。除了使用createLinkTo的,我刚才定义Config.groovy中一个新的变量:

environments { 
    development { 
     grails.appURL = "http://10.0.xx.xxx:8080/my-app" 
    } 
    production { 
     grails.appURL = "http://10.0.yy.yyy" 
    } 
} 

在我的代码,我这样做: 进口org.codehaus.groovy.grails.commons.ConfigurationHolder为CH

//... 
def appURL = CH.config.grails.appURL 
//... 

这至少让我得到一个可预测的路径。

+0

仅供参考,此`g.createLinkTo`已被弃用。你现在应该使用`g.resource` – 2011-11-30 15:44:16