Vaadin 23.2.17修改urlMapping后静态资源无法加载求助
解决Vaadin 23静态资源无法访问的问题
针对你遇到的静态图片无法加载的问题,可按以下步骤排查修复:
1. 修正图片资源路径
当配置了vaadin.urlMapping = /vaadin/*后,前端资源的基础访问路径变为/vaadin/frontend/,因此你的图片路径需要调整为完整的相对路径:
Image image = new Image("frontend/images/company-logo.gif", "company-logo"); portalLogo.add(image);
或者使用Vaadin的ContextRelativeResource确保路径解析正确:
Image image = new Image(new ContextRelativeResource("frontend/images/company-logo.gif"), "company-logo"); portalLogo.add(image);
2. 移除自定义的ServletRegistrationBean
Vaadin 23与Spring Boot集成时,配置vaadin.urlMapping后框架会自动处理前端资源的路由逻辑,手动注册/vaadin/frontend/*的Servlet可能会覆盖或干扰默认的资源处理流程,建议删除你自定义的frontendServletBean Bean定义。
3. 检查Spring Security配置
确保Spring Security允许访问Vaadin相关的前端资源路径,在Security配置类中添加放行规则:
@Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/vaadin/**", "/frontend/**", "/VAADIN/**") .permitAll() // 其他业务权限规则... }
完成以上调整后,重启应用即可正常加载静态图片资源。
内容的提问来源于stack exchange,提问作者Giuseppe Di Luca
相关产品推荐
相关产品推荐

