Spring mvc:资源找不到* .ico文件

时间:2011-03-10 15:10:17

标签: java spring spring-mvc favicon ico

我很难让我的Spring 3.0应用程序将favicon.ico类型文件识别为资源。我在spring-context.xml文件中定义了我的资源目录,如下所示:

<mvc:resources mapping="/ui/**" location="/ui/" />

此目录结构如下所示:

/ui
  /images
  /styles
  /scripts
  ...

Spring托管我的图片,脚本和样式就好了。但是,在尝试检索images目录中的任何*.ico文件时出现404错误。所有PNG,GIF和JPG图像在同一目录中都可以正常工作。我尝试更具体地说明要托管哪些目录,甚至将.ico文件指定为context.xml文件中的资源,但仍然得到相同的结果:

<mvc:resources mapping="/ui/images/*.ico" location="/ui/images" />

我也尝试过将servlet映射添加到默认的servlet中。当我在网上进行研究时,这似乎对某些人有用,但对我来说并没有证明是成功的。

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.ico</url-pattern>
</servlet-mapping>

编辑:我还将favicon.ico文件添加到Web应用程序的根路径中。如果我使用一个png文件作为favicon,它适用于每个浏览器,但IE。如果可能的话,我想为所有浏览器解决这个问题。 在这一点上的任何帮助将不胜感激。

EDIT2:我在XHTML文档中已经有了一个链接标记:

<link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/ui/images/favicon.ico" />

1 个答案:

答案 0 :(得分:14)

由于我使用Tomcat 6来托管应用程序,因此我的解决方案是将MIME类型添加到应用程序的web.xml文件中,如下所示。

<mime-mapping>
    <extension>ico</extension>
    <mime-type>image/vnd.microsoft.icon</mime-type>
</mime-mapping>

谢谢skaffman!