如何解决将 Vaadin 14.0.10 应用程序更新到 14.5.4 会导致从 /VAADIN/ 加载的资源的 MIME 类型错误
我有一个带有 Spring Boot 和 Spring Security 配置的 Vaadin 14.0.10 应用程序。我正在尝试将其更新到 14.5.4,但在更新后,当我尝试加载应用程序时出现空白页面。服务器日志上没有错误,但是在浏览器控制台上,显示了两个错误:
Refused to execute script from 'http://localhost:8080/login' because its MIME type ('text/html') is not executable,and strict MIME type checking is enabled.
和
login:1 Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
查看“网络”选项卡,似乎 webcomponents-loader.js
和 vaadin-bundle-*.cache.js
都获得状态 302“脚本/重定向”。这两个文件都从 /VAADIN/build
下提供。
起初我认为这可能是 Spring Security 配置问题,但在我的 WebSecurityConfigurerAdapter
实现中,我有:
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers(
// Vaadin Flow static resources
"/VAADIN/**",// the standard favicon URI
"/favicon.ico",// the robots exclusion standard
"/robots.txt",// and so on
...并且 /VAADIN/**
匹配器应该负责提供对有问题文件的访问权限。
我尝试运行 mvn clean 并且我删除并重新填充 node_modules
无济于事。
解决方法
问题是 webpack.generated.js
,它错误地存储在项目的 Git 存储库中。删除文件并重建项目解决了这个问题。尽管从某种意义上说这是“用户错误”,但在版本升级的情况下,该文件应该已被自动覆盖,因为 webpack 输出路径已在 14.0 和 14.5 之间更改:https://github.com/vaadin/flow/issues/10932
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。