我正在尝试使用spring mvc 4和apache tomcat 7(在firefox中)添加一个favicon.ico。 我检查了很多解决方案,但似乎没有人工作。
的web.xml:
<mime-mapping>
<extension>ico</extension>
<mime-type>image/x-icon</mime-type>
</mime-mapping>
MVC核-config.xml中:
<mvc:default-servlet-handler/>
<!-- <mvc:resources mapping="/resources/**" location="/resources/css" /> -->
<mvc:resources location="/favicon.ico" mapping="/favicon.ico" />
JSP:
<link href="MYPROJECT/favicon.ico" rel="icon" type="image/x-icon">
(我也试过没有MYPROJECT和其他变种......)。
我在webapps下放置了favicon.ico文件(也在其他文件夹中试过)。
加载页面时,不显示任何图标。
注意:我尝试直接加载图标http://localhost:8080/MYPROJECT/favicon.ico
,但收到以下错误消息:the image 'http://localhost:8080/MYPROJECT/favicon.ico' cannot be displayed because it contains errors
。我下载了其他的favicon.ico,但图标看起来已损坏。
在检查firefox中的元素时,我没有打电话给favicon.ico。
有什么建议吗?
更新 在我的eclipse控制台中,我看到了:
查找路径的处理程序方法/ 15:48:05.622 [http-bio-8080-exec-6] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - 找不到[/]的处理程序方法 15:48:05.622 [http-bio-8080-exec-6] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - 查找路径的处理程序方法/ 15:48:05.623 [http-bio-8080-exec-6] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - 找不到[/]的处理程序方法 15:48:05.623 [http-bio-8080-exec-6] DEBUG o.s.w.s.h.SimpleUrlHandlerMapping - 使用处理程序[org.springframework.web.servlet.mvc.ParameterizableViewController@380baa3a]和1个拦截器将[/]映射到HandlerExecutionChain
UPDATE2 mvc config xml:
<import resource="mvc-view-config.xml"/>
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"/>
<mvc:annotation-driven conversion-service="conversionService"/>
<context:component-scan base-package="controllers,logic.preprocess"/>
<mvc:view-controller path="/" view-name="index" />
<mvc:default-servlet-handler/>
<mvc:resources location="/favicon.ico" mapping="/favicon.ico" />
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
p:basename="messages/messages"/>
</beans>
包含的mvc-view-config.xml:
<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="viewResolvers">
<list>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<property name="contentType" value="text/html;charset=UTF-8"></property>
</bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="order" value="1"/> </bean>
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
<property name="order" value="2" /> </bean>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="order" value="3" />
<property name="alwaysUseFullPath" value="true" />
<property name="mappings">
<props>
<prop key="controllers/TaskController">taskController</prop>
<prop key="controllers/ResultController">resultController</prop>
</props>
</property>
</bean>
更新3 我把文件放在资源/图像下,它似乎只在chrome上运行PARTIALLY(没有快捷方式)但在firefox上没有。
谢谢, 麦克
答案 0 :(得分:3)
在FireFox和Chrome中测试过:我遇到了同样的问题。这是如何解决它。我做了this answer suggested:
的web.xml:
<mime-mapping>
<extension>ico</extension>
<mime-type>image/x-icon</mime-type>
</mime-mapping>
MVC-调度-servlet.xml中:
<mvc:resources mapping="/resources/**" location="/resources/mytheme/" />
(在我的情况下不需要<mvc:default-servlet-handler />
)
genericpage.tag(我使用模板,但这可以是你的jsp文件):
<link rel="shortcut icon" href='<c:url value="/resources/images/favicon.ico" />' type="image/x-icon">
<link rel="icon" href='<c:url value="/resources/images/favicon.ico" />' type="image/x-icon">
NB:请注意,您必须使用href中的<c:rul value=
位,否则它将无效。
项目结构:
Web pages
+--META-INF
+--WEB-INF
+--resources
+--mytheme
+--css
+--images
+--favicon.ico
出于某种原因,当它只在/ resources / mytheme /
中时它不起作用答案 1 :(得分:1)
存储favicon.ico - 来自WEB-INF目录的一个。
<link href="/favicon.ico" rel="icon" type="image/x-icon">
答案 2 :(得分:0)
您需要在Web应用程序调度程序Servlet中添加以下标记,即
springmvc-dispatcher-servlet.xml:
指定资源位置以加载JS,CSS,图像等
<mvc:resources mapping="/resources/**" location="/resources/"
cache-period="45556999"/>
您的Web应用程序结构应如下所示
您的Web应用程序WebContent文件夹结构应如下所示
WebContent
+resources
-->images
-->favicon.ico
将这些行放在<header></header>
标记之间的Web应用程序jsp页面中,如下所示
<head>
<link rel="shortcut icon" href='<c:url value="/resources/images/favicon.ico" />' type="image/x-icon">
<link rel="icon" href='<c:url value="/resources/images/favicon.ico" />' type="image/x-icon">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
<link href="<c:url value="/resources/css/bootstrap.css" />" rel="stylesheet">
<link href="<c:url value='/resources/css/app.css' />" rel="stylesheet">
</head>