纯铬问题:使用servlet提供图像。一个图像加载,一个图像不加载

时间:2013-04-05 08:16:36

标签: google-chrome servlets struts2

修改

我有一个包含以下HTML代码的页面:

<img src="/static/ads/1111.png"> <!-- 1 -->
<img src="/static/2222.png"> <!-- 2 -->

加载页面时,无法显示1号图像。显示图像2。

在Chrome DevTools的网络标签中检查图像请求,请求始终处于“待处理”状态。

甚至更奇怪的是,当我直接访问http://localhost:8080/static/ads/1111.png中的图像编号1时,图像实际上会加载。

此问题似乎只会影响Google Chrome。我在Firefox中进行了测试,它在那里工作。

对于Chrome,我收到控制台错误:

Port error: Could not establish connection. Receiving end does not exist.

当我比较图像1的请求标题时

Cache-Control:no-cache
Pragma:no-cache
Referer:http://localhost:8181/index.html
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31

vs Image No.2

Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:8181
Pragma:no-cache
Referer:http://localhost:8181/index.html
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31

有很大的不同。有谁知道发生了什么事?


更多信息

我正在使用BalusC的FileServlet来提供在我的网络应用目录之外找到的文件。

我的网络应用使用Struts2作为其框架。

我的web.xml:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>


<servlet>
    <servlet-name>fileServlet</servlet-name>
    <servlet-class>com.FileServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>fileServlet</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>

我已经在struts.xml中排除了这条路径,如下所示:

<constant name="struts.action.excludePattern" value="/static/.*"/>

1 个答案:

答案 0 :(得分:3)

来自JB Nizet:

你确定你没有使用一些过滤掉fom ** / ads / **图像的广告拦截插件吗?