我无法显示我的tomcat应用程序的favicon

时间:2011-03-25 14:04:48

标签: tomcat web.xml favicon

我在我的应用程序根文件夹中放了一个favicon。但我无法展示它。如果我尝试将浏览器指向它,我会得到404.

现在我已经为我的servlet绘制了这个映射:

<servlet-mapping>
    <servlet-name>springDispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

现在我无法改变所有的东西只是为了图标....你有没有任何不那么痛苦的修复?

2 个答案:

答案 0 :(得分:3)

根据您向用户提供收藏图标的方式,您可以尝试以下内容。

创建一个新的Web应用程序,我们称之为IconDispatcher。此应用程序的web.xml可以为空。然后在主应用程序中,显示的页面将在标题

中包含以下内容
<link rel="icon" type="image/ico" href="/IconDispatcher/favicon.ico"/>

由于Tomcat将在提供页面时使用最具体的路径,因此应该转到新的Icon应用程序以获取您的favicon.ico文件,而不是在主应用程序中查找。

如果您不想仅为服务该图像而创建新的Web应用程序,则可以创建一个新的调度程序,该调度程序仅用于将请求的资源转发回用户。 url-mapping将更具体,因此请求将转到正确的servlet

<servlet-mapping>
    <servlet-name>iconDispatcher</servlet-name>
    <url-pattern>/Icon</url-pattern>
</servlet-mapping>

另一种选择可能是将Web服务器放在Tomcat之前。通过这样做,您可以从Web服务器提供所有静态内容,并仅将非静态内容转发到tomcat服务器进行处理。

希望这些想法有所帮助

答案 1 :(得分:1)

您还可以将以下代码添加到web.xml,以便为您的spring项目提供默认的Tomcat功能。

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