如何将gwt.codesvr自动附加到页面URL

如何将gwt.codesvr自动附加到页面URL,gwt,gwt-hosted-mode,Gwt,Gwt Hosted Mode,在托管模式下运行GWT应用程序时,通常需要在查询字符串参数中添加代码服务器的位置,例如,可能需要打开index.html?GWT.codesvr=127.0.0.1:9997而不是index.html。问题是gwt.codesvr通常不包含在超链接中,因此必须手动添加。将它添加到应用程序中的所有链接似乎不是一个好主意,因为它会干扰最终的GWT编译版本。另一个选项是index.html通过JavaScript进行自我反省,并将默认的gwt.codesvr附加到window.location,但这只

在托管模式下运行GWT应用程序时,通常需要在查询字符串参数中添加代码服务器的位置,例如,可能需要打开index.html?GWT.codesvr=127.0.0.1:9997而不是index.html。问题是gwt.codesvr通常不包含在超链接中,因此必须手动添加。将它添加到应用程序中的所有链接似乎不是一个好主意,因为它会干扰最终的GWT编译版本。另一个选项是index.html通过JavaScript进行自我反省,并将默认的gwt.codesvr附加到window.location,但这只能在应用程序确定它尚未编译后进行,也就是说,gwt模块可能需要重新编译之后。 我相信,对于GWT来说,理想的解决方案是,在没有可供选择的排列之后,允许定制它所做的操作。默认操作是显示刚才提到的警报警告,但不幸的是,这不是可自定义的


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

因为您将只使用该url进行开发,可能很少使用该url进行远程调试,只是书签或您使用的任何端口。

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

javascript:window.location+=(window.location.href.indexOf('?')==-1?"?":"&")+"gwt.codesvr=localhost:9997"
但这并不能解释最后的散列,你可能根本不需要它。那个书签是我唯一使用书签栏的东西


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

因为我一直在处理“位置”,所以现在我也更新了bookmarklet来处理

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日更新-脚本中有一个打字错误。更正。

我认为您的解决方案与手动添加gwt.codesvr没有太大区别。当然,任何链接都可以添加书签。除此之外,我可以想象这样做没有多大用处的情况,例如,当index.html作为iframe加载时……您只需键入一次url,即可启动应用程序,无需修改应用程序中的任何链接以支持代码。最常见的情况是:您的页面顶部有一个注销链接。它向某个注销操作URL发出HTTP请求,然后重定向到index.html。由于index.html是安全的,因此会将您重定向到登录页面,登录后您可以看到index.html。这是您第二次访问index.html,但这次使用gwt.codesvr参数strippedpodgood point。但我认为重定向并没有得到正确的实现,因为它去除了参数。注销操作的结果通常是固定的,大多数情况下是在应用程序的主页上。您是否暗示注销操作应该通过检查Referer头或类似的东西来猜测用户单击注销的页面?您的Javascript中有一个错误。你能再检查一遍吗?你抄对了吗?