gpt4 book ai didi

javascript - (Groovy/Grails) 如何处理 JavaScript 模块中需要根据环境更改的 URL (dev/prod/qa/etc)

转载 作者:行者123 更新时间:2023-12-03 18:54:52 26 4
gpt4 key购买 nike

我之前已经对此进行过投注,和/或绕过它,但我想一劳永逸地妥善解决它。

问题是,如果我需要在作为 Groovy/Grails 项目一部分的 JavaScript 模块中的每个环境更改 URL,该怎么办

例如,我有一个包含此函数的 JavaScript 模块:

function init() {
dojox.cometd.init('http://localhost:8082/grails-cometd/cometd'); // This URL changes for prod vs dev
dojox.cometd.subscribe('/queue/advisoryLock', onMessage);
}

grails 链接标签等在这里不起作用。是否有适当的 Grails/Java 方法来执行此操作?我找不到任何东西……

最佳答案

由于 grails 支持配置设置,我会根据环境指定 URL,然后在您使用的 grails 布局上设置值。

和上面一样,但是利用 grails 给你的东西

内部配置文件

environments {
development {
env.root.url = 'http://localhost:8080/development'
}
production {
env.root.url = 'http://localhost:8080/production'
}
staging {
env.root.url = 'http://localhost:8080/staging'
}
}

在布局文件中

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page import="org.codehaus.groovy.grails.commons.ConfigurationHolder" %>
<html>
<head>
<script type="text/javascript">
my_project_webroot = "${ConfigurationHolder.config.env.root.url}";
</script>

...现在嵌入你的 JavaScript 文件......

此外,根据您的 javascript 文件的结构,您可以直接嵌入 grails 配置值

关于javascript - (Groovy/Grails) 如何处理 JavaScript 模块中需要根据环境更改的 URL (dev/prod/qa/etc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3538454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com