0

我曾经为 favicon.ico 找到未找到的映射,因此决定处理它。

对我来说最简单的事情就是向控制器方法中添加一个动作,@RequestMapping("/favicon.ico")。

我不再收到这些投诉(虽然我自己没有在 html 文件中请求 favicon.ico,但我猜浏览器会自动执行此操作)。

当我访问http://localhost:8080/favicon.ico时,动作被击中!

我将以下内容添加到我的 html 文件中:

<link href="/favicon.ico" rel="icon" type="image/x-icon" />

但行动永远不会受到打击。

我也试过

<link href="http://localhost:8080/favicon.ico" rel="icon" type="image/x-icon" />

但行动不会受到打击。

我怀疑这与获取/发布请求有关,当我手动从浏览器请求它时,会发出一个获取请求。当从 html 文件中获取其他内容时,Spring 将无法识别这一点。

请不要推荐我这样做:

<mvc:resources mapping="/favicon.ico" location="/favicon.ico" />

因为我喜欢从我的控制器中进行操作,因为我在那里有一些逻辑。

可能涉及一些缓存吗?

编辑:

我还应该提到,我一直在获得一个 tomcat favicon。看不到任何关于 favicon.ico 被请求的信息。tomcat 是否默认提供它并忽略点击/转发它到我的操作?

4

1 回答 1

0

我遇到了同样的问题。

当 spring boot 启动时,您可以在控制台中看到:

[...] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

您可以从application.properties禁用 spring mvc favicon 处理程序:

spring.mvc.favicon.enabled=false

资料来源:Spring Boot:覆盖 favicon

于 2017-08-28T12:25:33.820 回答