使用Spring Boot更改网页的favicon图标

最近开始接触Spring Boot,至今为止只有大约3个月的经验,还是一个新手。由于这个领域的日语信息相对较少,所以我打算在英文网站上查找解决方案,并将其作为小贴士发布。

Spring标志的favicon

在使用Spring Boot创建Web API并从浏览器访问时,会自动附带绿叶形状的Spring图标作为favicon。

或许是春天…。(Maybe it’s spring…)

image

如果不幸Spring Boot存在漏洞,这样一来,就好像在说“嘿,我是Spring Boot,快来挖漏洞啊!”这种情况就会发生。

让我们更换favicon图标

这一次,

    • Hello world!と返すだけのcontrollerを用意

 

    そのアドレスを叩いた際に、任意のfaviconが表示されるようにする

做如下事情。 Controller的代码是以下简单的形式。

@Controller
@EnableAutoConfiguration
class SampleController {

    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args);
    }

}

将favicon.ico文件放置在任意位置。

根据这个主题,将favicon.ico放置在main/resources下(如果是spring boot 1.2.0之后的版本,则放置在main/resources/static),然后favicon就会被替换掉。

当我立即尝试后,哇,确实有所不同呢!

当访问 http://localhost:8080/favicon.ico 时,确实会返回放置的 favicon。

将spring.mvc.favicon.enabled改为false。

虽然这并不是“替换”,但它可以实现不将叶子标志作为网站图标的目的,特此介绍。

通过在 main/resources/application.yml 文件中添加以下内容,即可确保访问 http://localhost:8080/favicon.ico 时返回 Not found(404)。

spring:
    mvc.favicon.enabled: false

但是。。。

不管是在Firefox还是Safari,favicon都正确变化了,但是在Chrome里却没有变化…即使在隐私模式下也还是没变…

我在谷歌上搜索时发现有一些评论说”Chrome的网站图标有些问题”,可能与这个有关。哎呀,我会慢慢看的。

总结

我已经解释了如何在Spring Boot中替换favicon的方法。这个方法简单而且最重要。

在上面提到的Stack Overflow帖子中,提到了有关配置注入的方法等内容。一旦理解,我会考虑用日语进行总结。

bannerAds