3

ホストされたモードで GWT アプリケーションを実行する場合、通常、クエリ文字列パラメーターにコード サーバーの場所を追加するindex.html必要がありますindex.html?gwt.codesvr=127.0.0.1:9997。問題は、gwt.codesvr通常はハイパーリンクに含まれていないため、手動で追加する必要があることです。アプリケーション内のすべてのリンクに追加することは、GWT でコンパイルされた最終バージョンに干渉するため、良い考えではないようです。もう 1 つのオプションは、index.htmlJavaScript によってそれ自体をイントロスペクトし、デフォルト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

私は常に「場所」を扱っているので、「#」も扱うようにブックマークレットを更新しました。

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 に答える