我试图弄清楚如何从 CDN 而不是从 tomcat 服务器提供我的 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>
并修改了 javascript 导入以使用 CDN url,来自:
<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
返回 Javascript 的 URL (uoo9w.cloudfront.net) 而不是主机页面 (mysite.example.com),这会破坏诸如用于 RPC 请求的 URL 之类的东西。
(看评论)GWT.getModuleBaseForStaticFiles
似乎是一种允许使用 CDN 的方法,但我找不到有关它的文档。
有谁知道设置 GWT 以从 CDN 提供服务并将 RPC 请求发送到主机页面域的正确方法?
边注:
由于 CDN 具有不同的域名和路径,我担心会出现涉及同源策略的问题,但由于 GWT 主机页面与所有 RPC 请求在同一个域上提供服务,所以这不是问题。(即 Window.Location 与 RPC 的域相同)