Я не знаю ни Java, ни Grails, так что может быть какой-то родной способ, о котором я не знаю (что, очевидно, было бы предпочтительнее), но одним из распространенных способов решения этой проблемы было бы определение глобальной переменной в HTML документ до внедрения скриптов:
<html>
<head>
<script type="text/javascript">
my_project_webroot = "http://localhost:8082";
</script>
... now embed your JavaScript files .....
Вы можете затем обратиться к my_project_webroot
в функциях:
function init() {
dojox.cometd.init(my_project_webroot+'/grails-cometd/cometd'); // This URL changes for prod vs dev
dojox.cometd.subscribe('/queue/advisoryLock', onMessage);
}
если вы находите глобальные переменные некрасивыми (они есть), вы можете также рассмотреть возможность установки глобального объекта config
для всех таких настроек (веб-корень / статический веб-корень / текущий язык ...) для уменьшения помех.
Кроме того, платформа Dojo может предлагать некоторый объект конфигурации, который вы можете расширить.