使用UiBinder的我的GWT应用程序无法在Internet Explorer中加载。但是,它在Firefox,Safari和iPhone上都可以正常加载。
在试图找出问题时,我一直在试图寻找根本原因。我基本上是一个标签,它仍然适用于FF而不是IE。
这是EntryPoint
:
public class Core implements EntryPoint {
private static Core instance;
public static Core instance() {
return instance;
}
@Override
public void onModuleLoad() {
instance = this;
RootPanel container = RootPanel.get("container");
container.add(new Label("hi"));
}
}
这是我的index.jsp:
<!doctype html>
<html>
<head>
<script type="text/javascript" src="core/core.nocache.js"></script>
</head>
<body>
<div id="container"></div>
</body>
</html>
这是我的appengine-web.xml:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>realAppNameHere</application>
<version>andrew</version>
<static-files>
<include path="**" />
<!-- The following line requires App Engine 1.3.2 SDK -->
<include path="**.nocache.*" expiration="0s" />
<include path="**.cache.*" expiration="365d" />
<exclude path="**.gwt.rpc" />
</static-files>
<!-- Configure java.util.logging -->
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>
</appengine-web-app>
这是我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
即使有这个精简版的所有东西,它仍然适用于Firefox但不适用于IE。现在甚至没有任何错误,即使在Firebug中也没有...它只是没有在IE中显示标签,但它会在FF中显示标签。我不知道为什么这不会运行。
有人有任何想法吗?
编辑3:
忘记module.gwt.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='core'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<inherits name='com.google.gwt.ajaxloader.AjaxLoader'/>
<inherits name="com.google.gwt.logging.Logging"/>
<inherits name='com.google.gwt.user.theme.clean.Clean'/>
<entry-point class='com.company.core.client.Core'/>
<source path='client'/>
<source path='shared'/>
<set-property name="gwt.logging.logLevel" value="SEVERE"/>
<set-property name="gwt.logging.enabled" value="FALSE"/>
<set-property name="gwt.logging.consoleHandler" value="ENABLED"/>
<set-property name="gwt.logging.simpleRemoteHandler" value="DISABLED" />
</module>
答案 0 :(得分:1)
有些东西不会出现在IE6中,但它肯定会被加载。您需要看到的第一件事是您是否已将IE6的用户代理添加为
<set-property name="user.agent" value="ie6"/>
<。>在.gwt.xml文件中。
接下来,您需要检查是否在浏览器安全设置中为localhost添加了例外。
如果完成所有这些并且仍然无法正常工作,请尝试清理项目并重新编译它。
答案 1 :(得分:1)
通过测试IE的实际副本(不是Firefox的IE插件),我们能够看到错误“控制台未定义”。
原来,这是在IE中引发异常,阻止了页面加载:
public native static void log(String inString)
/*-{
console.log(inString);
}-*/;
因此,要解决此问题,我们会将该引用取出console
并替换为跨浏览器的日志记录库,例如GWT-Log