2011-08-25 3 views
8

GWTが引数なしで動作しない理由を知りたいですか?gwt.codesvr = 127.0.0.1:9997、 URLをハードコーディングしているモジュール間でリダイレクトして、メッセージを表示しないようにこの行を設定する必要があります:Module XXXは(再)コンパイルする必要があります。なぜGWTが動作しないのですか?gwt.codesvr = 127.0.0.1:9997

私たちモードにホストモードから変更するだろうというとき、将来的にこのURLを変更する必要がないことを願ってい

...

だから、他の一つに、モジュールからリンクする任意のより良い方法はありますか?私は次のようにしています:

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

ありがとうございます。

答えて

8

* .nocache.jsによって照会文字列の引数が参照され、ブラウザにインストールされたdevモードプラグインの読み込みがトリガーされ、指定されたDevModeアプリケーションに接続されます。

ページ間をリダイレクトする必要があり、それらがすべてdevモードまたは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. 

これは、アプリケーションが実行されている現在の「モード」に条件づけされていません。無条件で、クエリ文字列をコピーします。

+0

'GET.getHostPageBaseURL()'は、scheme、host:portを含む絶対URLを返します。これを 'setPath()'で使用すると、不正な形式のURLが生成されます。しかし、 'setPath()'の呼び出しをスキップすると、ページの現在のURLとみなされます。これは典型的なGWT単一ページWebアプリケーションで動作します。 – spoulson

0

このパラメータは開発モード用です。 そのパラメータでURLをハードコーディングしている場合は、間違っていることに注意してください。

関連する問題