Изменение grails.serverURL не влияет на createLinkTo([], absolute:'true')?

Я пытаюсь отобразить апплет Java на странице сервера Grails. Я использую удобный фрагмент Javascript от Sun для отображения апплетов:

<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 я настроил разные URL-адреса сервера:

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" .) Это баг? Есть ли обходной путь?


person Steve Landey    schedule 11.06.2009    source источник


Ответы (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
//...

Это, по крайней мере, позволяет мне получить предсказуемый путь.

person Steve Landey    schedule 12.06.2009
comment
К вашему сведению, этот g.createLinkTo устарел. Теперь вы должны использовать g.resource - person Dónal; 30.11.2011