使用纯 Java 和 Springboot 在 Vaadin 中更改 FavIcon

Changing FavIcon in Vaadin using pure Java alongside Springboot

我想在 Vaadin 中更改与 Springboot 结合的网站图标。我还选择了在 Vaadin 中走纯 Java 路线(没有 html 页面)。

我遵循了 this guide,它解释了我希望使用的图标应该添加到 src/main/webapp/icons 文件夹中,在那里它将被自动拾取、调整大小等。

我试过了没有用,然后我找到了这个thread and subsequently this one。后者link特别说明Spring-boot有自己的目录,应该避免webapp文件夹。我尝试使用 spring 目录,但仍然无济于事。

我的资源文件夹目前看起来是这样的:

我的 MainView 是这样的:

@Route
@PageTitle("My new title")
public class MainView extends VerticalLayout {

我的 SpringBootApplication class 是这样的:

@SpringBootApplication
public class MyVaadinApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(MyVaadinApplication.class, args);
    }
}

图标仍保持默认 spring 叶子:

我在尝试设置网站图标时哪里出错了?

icon.png 添加到 resources/META-INF/resources/icons/icon.png


然后:

  • 如果您使用的是渐进式网络应用程序(@PWA 注释),它应该已经可以工作了
  • 如果您使用简单的 vaadin 应用程序,您应该实施 PageConfiguration 并将 link 添加到您的 favicon。
@Route("favicon")
public class FaviconTest extends Div implements PageConfigurator {
    @Override
    public void configurePage(InitialPageSettings settings) {
        HashMap<String, String> attributes = new HashMap<>();
        attributes.put("rel", "shortcut icon");
        attributes.put("type", "image/png");
        settings.addLink("icons/icon.png", attributes);
    }
}