3

在托管模式下运行 GWT 应用程序时,通常需要在查询字符串参数中添加代码服务器的位置,而不是index.html可能需要 open index.html?gwt.codesvr=127.0.0.1:9997。问题是它gwt.codesvr通常不包含在超链接中,因此必须手动添加。将它添加到应用程序中的所有链接似乎不是一个好主意,因为它会干扰最终的 GWT 编译版本。另一种选择是index.html通过 JavaScript 进行自省并附加一个默认值gwt.codesvrwindow.location但这应该只在应用程序确定它没有被编译后完成,即在GWT module may need to be (re)compiled警报。我相信,理想的解决方案是让 GWT 在找不到可供选择的排列后允许自定义其执行的操作。默认操作是显示刚才提到的警报警告,但不幸的是,这不是可自定义的。

gwt.codesvr所以我的问题是:当没有编译排列时,用默认值自动打开当前页面的最佳方法是什么。

4

3 回答 3

5

我制作了一个书签,单击以调试当前页面:

javascript:window.location+=(window.location.href.indexOf('?')==-1?"?":"&")+"gwt.codesvr=localhost:9997"

但这并不能说明最后的哈希值,无论如何您可能都不需要。那个书签是我唯一使用书签栏的东西......

可能值得指出的是,这甚至可以用于生产服务器,只要您在本地拥有与该服务器运行的客户端代码大致相同的客户端代码。

于 2012-01-23T17:34:22.293 回答
2

由于我一直在处理“Places”,所以我更新了书签以处理“#”。

javascript:(function(){h="localhost";p="9997";l="gwt.codesvr="+h+":"+p;s=false;if(document.location.href.indexOf("gwt.codesvr")<0){q=document.location.href.indexOf("?");if(q<0){q=document.location.href.indexOf("#");if(q>0){q=q-1}s=true}if(q<0&&!s){document.location.href=document.location.href+"?"+l}else%20if(q>=0&&!s){b=document.location.href.substr(0,q+1);e=document.location.href.substr(q+1);document.location.href=b+l+"&"+e}else{b=document.location.href.substr(0,q+1);if(q<0){e=""}else{e=document.location.href.substr(q+1)}document.location.href=b+"?"+l+e}}})();

2017 年 2 月 7 日更新 -脚本中有错字。更正了它。

于 2012-02-03T00:37:32.377 回答
0

由于您只会将该 url 用于开发(并且可能几次用于远程调试),因此只需将http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997(或任何端口)添加为书签你用)。

于 2012-01-23T16:36:19.557 回答