【问题标题】:Changing grails.serverURL has no effect on createLinkTo( [...], absolute:'true')?更改 grails.serverURL 对 createLinkTo([...], absolute:'true') 没有影响?
【发布时间】:2009-06-11 16:02:04
【问题描述】:

我正在尝试在 Grails 服务器的页面中显示 Java 小程序。我正在使用 Sun 方便的 Javascript sn-p 来显示小程序:

<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 中,我设置了不同的 serverURL:

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”。)这是一个错误吗?有解决办法吗?

【问题讨论】:

    标签: java grails applet config


    【解决方案1】:

    我找到了解决方法。我没有使用 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
    //...
    

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

    【讨论】:

    • 仅供参考,此g.createLinkTo 已被弃用。你现在应该使用g.resource
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    相关资源
    最近更新 更多