2009-06-11 82 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