如何拦截SpringMVC中对favicon.ico的所有请求?

时间:2011-10-01 23:06:16

标签: java spring web-applications spring-mvc favicon

我有一个能够恰当回应/favicon.ico的控制器。

但我刚刚意识到当你在/subpage/index.html这样的子页面时,浏览器(至少是chrome)正在请求/subpage/favicon.ico

是否有一种干净的方式来回复所有favicon.ico请求?如果可能的话,我宁愿不重定向所有.ico请求,但如果这是最好的解决方案,也许。

1 个答案:

答案 0 :(得分:5)

好的,我只是用控制器从手指中掏出一个选项:

@Controller
@RequestMapping("/")
public class PublicPagesController extends BaseController {
    @RequestMapping("**/favicon.ico")
    public String favIconForward(){
        return "forward:/public/img/fav.ico";
    }

    // ...other stuff...
}

请注意需要使用文件名fav.ico,如果您使用文件名favicon.ico尝试此操作,您将获得无限循环。

我以前只使用这种方法@RequestMapping("favicon.ico")

这假设您使用以下内容从/public提供静态内容:

<mvc:resources mapping="/public/**" location="/public/"/>