在我的Java Web应用程序中,图像有时无法显示,而是显示“断开链接”的红色X符号。查看Chrome开发人员工具中的“网络”标签,我可以看到图像正在加载状态代码为200(确定)和正确的内容类型标题。如果重要的话,似乎没有内容长度标题。
当我从IDE本地运行应用程序时,我无法重现该问题;它似乎只发生在我在服务器上运行时。我的第一个想法是它可能与IE的兼容性视图有关,但无论兼容性视图是打开还是关闭,同样的事情都会发生,而且它也发生在Chrome中。我还尝试更改IE的一些安全设置,因为当我在本地运行时,应用程序位于本地Intranet区域,而当它在服务器上运行时,它位于可信站点中。这没有用。
我认为JSP中的img标签没有任何异常。我使用较旧的DOCTYPE,因为它阻止IE 8在页面周围放置边框,我需要支持IE 8.边框是不可取的,但如果更改DOCTYPE将解决问题,那将是值得的。我意识到较旧的DOCTYPE将IE置于怪癖模式,但将其更改为<!DOCTYPE html>
似乎没有帮助。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head> ... </head>
<body>
<div>
<img class="loginButton" width="100" height="28" alt="Log In" title="Log In" src="images/login.png"/>
</div>
...
</body>
</html>
如果我重新加载页面,一些图像将重新出现,而其他图像将消失。我通常必须在所有图像出现之前重新加载页面4到5次。清除缓存和/或cookie似乎没有帮助。
页面上没有很多图像,通常只有6或7个,并且它们的大小不超过4kb。有些图片是GIF,有些则是PNG;两种类型都有同样的问题。我在本地和服务器上运行Java 1.6上的Tomcat 7。
另一条信息,虽然我不确定它是如何融入这个难题的:我查看了IE存储其缓存文件的文件夹,我注意到其中一个未显示的图像的文件有文件大小为0.我删除了文件,重新加载了页面,然后出现了图像。然后我重新加载页面几次,直到图像消失,并查看缓存目录。再一次,图像文件的大小为零。我不确定为什么会这样。
我环顾四周并看到了类似的问题,但到目前为止还没有解决方案。我试图提供我认为相关的所有信息,但如果还有其他重要信息,请告诉我。谢谢你的帮助。