2

编辑

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

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

当我加载页面时,无法显示第一张图片。显示第 2 个图像。

检查 Chrome DevTools 的网络选项卡中的图像请求,该请求始终处于“待处理”状态。

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

这个问题似乎只影响谷歌浏览器。我在 Firefox 中对其进行了测试,它在那里工作。

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

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

当我比较 Image No. 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

与 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来提供在我的 web-app 目录之外找到的文件。

我的 Web 应用程序使用 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/.*"/>
4

1 回答 1

3

来自 JB 尼泽特:

您确定您没有使用某些会过滤掉来自 ** /ads/ ** 的图像的广告拦截插件吗?

于 2013-04-08T01:53:18.093 回答