13

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

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

此目录结构如下所示:

/ui
  /images
  /styles
  /scripts
  ...

Spring 可以很好地托管我的图像、脚本和样式。但是,尝试检索*.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 应用程序的根路径中。如果我为 favicon 使用 png 文件,它可以在除 IE 之外的所有浏览器中使用。如果可能的话,我想为所有浏览器解决这个问题。在这一点上的任何帮助将不胜感激。

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

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

1 回答 1

14

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

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

谢谢斯卡夫曼!

于 2011-03-10T19:18:25.330 回答