1

我们有一个 GWT 应用程序。我们使用 Maven 3 构建并运行 GWT 应用程序。当我们在 Windows 7 上构建和运行并在 Windows 上的 IE 上进行测试时,该应用程序运行良好。但是,当我们在 Linux 上编译和运行应用程序,然后在 Windows 上的 IE 上进行测试时,应用程序看起来会有所不同。为了排除客户端问题:我们在完全相同的客户端上进行测试——Windows 7 上的 Internet Explorer。进一步调查显示,Linux 服务器上的 Javascript 与 Windows 服务器上的 Javascript 不同。

有谁知道为什么 GWT 在 Linux 和 Windows 上的行为不同?我们可以做什么让 GWT 在 Windows 和 Linux 上表现相同。我们使用 Maven 3 编译和运行 gwt。

这是GWT的插件配置:

<插件>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>gwt-maven-plugin</artifactId>
  <版本>2.5.0</版本>
  <执行>
    <执行>
      <目标>
        <目标>编译</目标>
        <goal>i18n</goal>
        <goal>generateAsync</goal>
      </目标>
    </执行>
  </执行>
  <配置>
    <runTarget>MyApplication.html</runTarget>
    <hostedWebapp>${webappDirectory}</hostedWebapp>
    <i18nMessagesBundle>nl.my.app.client.Messages</i18nMessagesBundle>
    <inplace>真</inplace>
  </配置>
</插件>

这是模块配置:

<?xml 版本="1.0" 编码="UTF-8"?>
<模块重命名为='MyApplication'>
    <inherits name='com.google.gwt.user.User' />
    <inherits name="com.google.gwt.i18n.I18N" />
    <继承名称='nl.my.module' />
    <inherits name="com.sencha.gxt.ui.GXT" />
    <inherits name="com.google.common.collect.Collect" />
    <inherits name='com.google.gwt.user.Debug' />
    <继承名称='nl.my.othermodule' />

    <入口点类='nl.my.MYApplication' />

    <源路径='客户端' />
    <源路径='共享' />

    <set-configuration-property name="UiBinder.useSafeHtmlTemplates" value="true" />

    <extend-property name="locale" values="nl_NL" />
</模块>

使用以下命令构建和运行应用程序:mvn gwt:run

4

2 回答 2

0

您可能在两个不同的系统上有不同的 JDK。确保 maven 使用的 JDK 相同。

于 2013-01-18T12:52:08.913 回答
0

我们发现了问题 -兼容模式:如问题中所述,问题仅发生在 Internet Explorer (IE) 中。当我们通过非本地地址访问应用程序时,会自动启用 IE 的兼容模式。在兼容模式下,IE 的行为略有不同。这就是为什么当我们确实通过localhost访问应用程序时- 在我们的开发工作站上 - IE 没有启用兼容模式并且应用程序看起来应该如此。

通过在应用程序的单个 html 文件的 head 部分添加以下内容解决了问题:

<meta http-equiv="X-UA-Compatible" content="IE=edge" >
于 2013-02-19T08:29:10.337 回答