在托管模式下运行GWT应用程序时,通常需要在查询字符串参数中添加代码服务器的位置,例如,而不是index.html
可能需要打开index.html?gwt.codesvr=127.0.0.1:9997
。问题是gwt.codesvr
通常不包含在超链接中,因此必须手动添加。将它添加到应用程序中的所有链接似乎不是一个好主意,因为它会干扰最终的GWT编译版本。另一个选择是让index.html
通过JavaScript自省并将gwt.codesvr
附加到window.location
,但这只应在应用程序确定它尚未编译后才能完成,即在GWT module may need to be (re)compiled
警报之后。
我相信,理想的解决方案是让GWT在找不到可供选择的排列后,自定义它所执行的操作。默认操作是显示刚才提到的警告警告,但不幸的是,这不是可自定义的。
所以我的问题是:当没有编译排列时,用默认gwt.codesvr
自动打开当前页面的最佳方法是什么。
答案 0 :(得分:5)
我制作了一个书签,我点击调试当前页面:
javascript:window.location+=(window.location.href.indexOf('?')==-1?"?":"&")+"gwt.codesvr=localhost:9997"
但是这并没有考虑到最后的哈希,无论如何你可能不需要。这个书签是关于我使用书签栏的唯一内容......
可能值得指出的是,即使您在生产服务器上也可以使用它,只要您在本地具有与该服务器运行的客户端代码大致相同的客户端代码。
答案 1 :(得分:2)
由于我现在一直处理'地方',所以我更新了书签以处理'#'。
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}}})();
更新2/7/2017 - 脚本中出现了拼写错误。纠正了它。
答案 2 :(得分:0)
由于您将仅使用该URL进行开发(可能只有几次用于远程调试),只需书签http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997(或您使用的任何端口)。