为什么GWT不能工作?gwt.codesvr = 127.0.0.1:9997

时间:2011-08-25 21:15:02

标签: gwt

我想知道为什么GWT在没有参数的情况下不起作用?gwt.codesvr = 127.0.0.1:9997在url中,我在硬编码url的模块之间重定向,我必须设置此行不显示消息:模块XXX必须(重新)编译。

我希望以后当我从主机模式更改为我们的模式时不必更改此网址...

那么有没有更好的方法从模块链接到另一个模块?我在做:

GWT.getHostPageBaseURL() + "UserRegistration.html ?gwt.codesvr=127.0.0.1:9997 "

提前致谢。

2 个答案:

答案 0 :(得分:8)

查询字符串参数由* .nocache.js查看,以触发加载您在浏览器中安装的开发模式插件,因此它将连接回指定的DevMode应用程序。

当您必须在页面之间重定向并且希望它们都以开发模式或Web模式运行时,最简单的方法是调整参数(如果可能的话,使用从现有参数获取的值,而不是硬编码)到!GWT.isProdMode()

if (!GWT.isProdModode()) {
   // assumes 'url' doesn't contain a query-string yet
   url += "?gwt.codesvr=" + Window.Location.getParameter("gwt.codesvr");
}

如果你自己不使用查询字符串,那么它只能与gwt.codesvr参数一起存在或者不存在,你可以使用UrlBuilder更简单:

UrlBuilder builder = Window.Location.createUrlBuilder();
builder.setPath(GWT.getHostPageBaseURL() + "UserRegistration.html")
//don't pass the history token around:
builder.setHash(null);
// builder.toString() will then keep the same query string.

并且它甚至不适应应用程序运行的当前“模式”,因为它只是无条件地复制查询字符串。

答案 1 :(得分:0)

该参数仅适用于开发模式。 请注意,如果您使用该参数对url进行硬编码,那肯定是错误的。