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

Pro*_*ian 2 java favicon icons vaadin spring-boot

我想在 Vaadin 中更改与 Springboot 结合的网站的 favicon。我还选择在 Vaadin 中采用纯 Java 路线(无 html 页面)。

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

我试过无济于事,之后我发现这个线程,然后这一个。后一个链接特别说明了 Spring-boot 有自己的目录,webapp应该避免使用该文件夹。我尝试使用 spring 目录,但再次无济于事。

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

资源目录

我的 MainView 是这样的:

@Route
@PageTitle("My new title")
public class MainView extends VerticalLayout {
Run Code Online (Sandbox Code Playgroud)

我的SpringBootApplication班级是这样的:

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

图标仍然是默认的弹簧叶:

浏览器标题栏

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

Ant*_*rov 5

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

在此处输入图片说明

然后:

  • 如果您使用的是渐进式网络应用程序(@PWA注释),它应该已经可以工作了
  • 如果您使用简单的 vaadin 应用程序,您应该实现PageConfiguration并添加到您的收藏夹图标的链接。
@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);
    }
}
Run Code Online (Sandbox Code Playgroud)