我在我的应用程序根文件夹中放了一个favicon。但我无法展示它。如果我尝试将浏览器指向它,我会得到404.
现在我已经为我的servlet绘制了这个映射:
<servlet-mapping>
<servlet-name>springDispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
现在我无法改变所有的东西只是为了图标....你有没有任何不那么痛苦的修复?
答案 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>