GWT:从服务器中分离 js + css + 图像

Posted

技术标签:

【中文标题】GWT:从服务器中分离 js + css + 图像【英文标题】:GWT : separate js + css + images from server 【发布时间】:2011-08-29 17:30:39 【问题描述】:

我们希望有以下配置:

一个服务器正在回复 GWT RPC:x.com(运行 Java 的那个) 另一台服务器正在为 js / css / 图片提供服务:y.com(用于带宽优化)

所以主页是:http://x.com/index.html 并包含这一行:<script type="text/javascript" language="javascript" src="http://**x.com**/my-app.nocache.js"></script>

我们收到一个 SOP 错误:不安全的 JavaScript 尝试使用 URL 访问框架 ...

有什么建议,有帮助吗?

【问题讨论】:

【参考方案1】:

您点击了Same Origin Policy,它阻止了向源服务器以外的服务器发出 XMLHTTPRequest。这有效地防止了跨域 GWT-RPC。

Making cross-site requests 中描述了可能的解决方法:

    在您的服务器上运行代理 将 JSON 响应加载到 <script> 标记中

【讨论】:

Thx - 这不是将多个 GWT RPC 发送到不同的来源,而是将实际的 WEB 资源(图像、css、js、html)与唯一的 GWT RPC 服务器分开。不知道有没有可能? 这正是我要说的:SOP 说您只能与加载 HTML+JS 的域(服务器)进行通信。 那么,您是从 x 服务器还是从 grom y 服务器加载 .js 文件? 另外,您是否有来自不同域 (x,y) 的 javascript 尝试相互访问? 不只是一台服务器上用于带宽目的的 GWT“资源”和另一台服务器上的“RPC”服务器。【参考方案2】:

将以下内容添加到您的 gwt.xml:

<add-linker name="xsiframe" />

这将生成稍微不同的代码,可以跨域加载。您的“主机页面”仍必须从您运行 GWT-RPC servlet 的同一台服务器加载,以免触发 SOP。

见this FAQ entry(“xs”链接器早于“xsiframe”链接器,后者现在是首选,最终甚至可以取代“std”,默认链接器)

【讨论】:

以上是关于GWT:从服务器中分离 js + css + 图像的主要内容,如果未能解决你的问题,请参考以下文章

从一个数组元素中分离两个字符串

如何从模板组件中分离模板(延迟加载模板)

在 node.js 中分离游戏服务器和 Web 服务器

如何从主要大盒子中分离颜色填充并使用正确的标签保存它们

从 Backbone.View 中分离模板逻辑

在二值化图像中分离交叉段