1

我正在尝试在自定义 Web 服务器上部署 GWT 客户端应用程序。我在我的 .gwt.xml 文件中使用这样的 GWT 预压缩链接器:

<inherits name="com.google.gwt.precompress.Precompress"/>

<set-configuration-property name="precompress.leave.originals" value="false" />

<add-linker name="xsiframe" />

在我的 html 文件中,我加载了引用 nocache.js.gz 的 javascript:

<script type="text/javascript" src="app/app.nocache.js.gz"></script>

编译器按预期生成压缩的 javascript 文件。但是,当我运行该应用程序时,该应用程序正在从 Web 服务器请求 *.cache.js 文件,而不是我期望的 *.cache.js.gz 文件。

我正在使用一个不能即时处理压缩的自定义 Web 服务器,所以我想知道是否有一种方法可以配置 GWT 编译器以生成请求 *.cache.js.gz 文件而不是 *.cache 的代码。 .js 文件?我似乎找不到任何文档,但如果我错过了文档中的某些内容,我将不胜感激。

4

2 回答 2

0

如果有办法配置 GWT 编译器来生成请求 *.cache.js.gz 文件的代码

不。

让我们做一个思想实验。假设我们可以让 GWT 从您的自定义服务器请求 gzip 文件。

谁来解压?GWT 浏览器客户端?不,您必须编写自己的浏览器。GWT 客户端中的所有 Java 都被翻译/编译成 Javascript。出于安全原因,浏览器上的 Javascript 无法调用浏览器的主机 JVM 来解压缩它。

谁来解压?服务器?然后您的自定义服务器必须处理它。您需要扩展自定义服务器的功能。

对不起,我很抱歉,但我希望您仔细考虑 Javascript 客户端和您的自定义服务器之间的数据交换。有人必须在某处解压缩文件 - 我确信它不会是集线器或路由器或传输电缆/媒体。

我建议人们在沉迷于 GWT 之前,先熟练掌握 JSP/JEE 编程。使用 JSP 生成 javascript 和 HTML 供浏览器显示。当您在 JSP 生成的内容方面获得了合理的经验时,您会倾向于了解 GWT 客户端-服务器的约束、优势和要求。如果不是 JSP,那么至少是 PHP。

于 2012-09-25T01:33:41.643 回答
0

PrecompressLinker将生成 .gz 文件。
然而,并非所有浏览器都支持预压缩资源,因此默认情况下不会加载它们。

您必须配置您的网络服务器/后端服务器,以便它检查是否有可用的预压缩资源以及客户端是否支持压缩,然后重写请求以检索 *.gz 文件而不是非压缩文件。

于 2012-09-25T09:21:26.497 回答