我很难让我的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" />
答案 0 :(得分:14)
由于我使用Tomcat 6来托管应用程序,因此我的解决方案是将MIME类型添加到应用程序的web.xml文件中,如下所示。
<mime-mapping>
<extension>ico</extension>
<mime-type>image/vnd.microsoft.icon</mime-type>
</mime-mapping>
谢谢skaffman!