Vaadin Flow的IFrame引用HTML页面修改后浏览器不生效如何解决?
解决方案
- 强制刷新绕过浏览器缓存
普通刷新会读取浏览器本地缓存的静态资源,可通过快捷键Ctrl+F5(Windows/Linux)或Cmd+Shift+R(Mac)强制刷新。也可打开浏览器开发者工具(F12),切换到「网络」面板勾选「禁用缓存」后再刷新页面。 - 给资源URL添加版本参数破除缓存
浏览器会根据完整URL缓存静态资源,修改URL的查询参数即可让浏览器视为新资源。可修改代码为带版本号的形式:// 每次修改HTML后升级版本号即可,也可在构建时自动注入构建号作为参数值 IFrame iFrame = new IFrame("webpages/my-erp.html?v=2"); - 确认IDE已同步修改后的资源到运行目录
手动到STS项目的target目录下查找对应路径的my-erp.html,确认内容是修改后的版本。如果没有同步,可右键项目选择「Maven > Update Project」,或者执行mvn clean install命令后再重启应用。 - 关闭Vaadin生产模式(开发阶段)
检查项目配置文件中的vaadin.productionMode参数,开发阶段需设置为false,生产模式会预编译并长期缓存静态资源,不会读取最新的本地文件修改。 - 配置开发工具自动检测静态资源修改(Spring Boot项目)
如果使用Spring Boot DevTools,可在配置文件中添加静态资源路径的监听配置,修改后会自动同步资源:spring.devtools.restart.additional-paths=META-INF/resources/icons/webpages/
内容的提问来源于stack exchange,提问作者nick
相关产品推荐
相关产品推荐

