Tomcat サーバーではなく CDN から GWT ファイルを提供する方法を見つけようとしています。
私はこのコードから始めました
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="no-index, no-follow" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>My Site</title>
<script type="text/javascript" src="/bcmjs/bcmjs.nocache.js"></script>
</head>
<body>
<div id="gwt_div">
</div>
</body>
</html>
そして、CDN url を使用するように JavaScript インポートを変更しました。
<script type="text/javascript" src="/bcmjs/bcmjs.nocache.js"></script>
これに:
<script type="text/javascript" src="https://uoo9w.cloudfront.net/bcmjs/bcmjs.nocache.js"></script>
フーラ!js がダウンロードされ、UIBinder ウィジェットが表示されますが、RPC は失敗します。
問題GWT.getModuleBase
は、ホスト ページ (mysite.example.com) ではなく Javascript の URL (uoo9w.cloudfront.net) を返すことで、RPC 要求に使用される URL などを壊してしまうことです。
(コメント参照)GWT.getModuleBaseForStaticFiles
CDN の使用を許可するように構築されたメソッドのようですが、それに関するドキュメントが見つかりません。
CDN からサービスを提供し、ホスト ページのドメインに RPC 要求を送信するように GWT を設定する正しい方法を知っている人はいますか?
サイドノート:
CDN はドメイン名とパスが異なるため、Same Origin Policy に関連する問題が発生するのではないかと心配していましたが、GWT ホスト ページはすべての RPC 要求と同じドメインで提供されるため、これは問題ではありません。(つまり、Window.Location は RPC と同じドメインです)