Gradle 瓦丁14生产模式和狩猎问题
我最近将我的应用程序切换到Vaadin 14原生NPM(不兼容模式)和生产模式。瓦丁版本是14.3.7。这是一个SpringBoot应用程序,使用Gradle打包为一个可执行的.war文件。我正在使用Vaadin Gradle插件 一切正常,除了在Safari(iOS+Mac)中应用程序不可用之外。在Mac上可以看到以下错误:Gradle 瓦丁14生产模式和狩猎问题,gradle,safari,vaadin,vaadin-flow,vaadin14,Gradle,Safari,Vaadin,Vaadin Flow,Vaadin14,我最近将我的应用程序切换到Vaadin 14原生NPM(不兼容模式)和生产模式。瓦丁版本是14.3.7。这是一个SpringBoot应用程序,使用Gradle打包为一个可执行的.war文件。我正在使用Vaadin Gradle插件 一切正常,除了在Safari(iOS+Mac)中应用程序不可用之外。在Mac上可以看到以下错误: TypeError: 'text/html' is not a valid JavaScript MIME type. 我发现有消息称ES6模块可能会在Safari上导
TypeError: 'text/html' is not a valid JavaScript MIME type.
我发现有消息称ES6模块可能会在Safari上导致此错误,但我认为默认情况下,Vaadin会在生产模式下传输到ES5
我能做些什么使Safari上的工作也能正常进行
更新
build.gradle
文件中的一些相关部分:
plugins {
...
id 'com.vaadin' version '0.8.0'
}
结果证明,这是由以下因素共同造成的:
- 应用程序由Apache服务器前置,该服务器在未登录时重定向到SSO
- Vaadin将捆绑包作为ES6模块加载
- Safari在加载ES6模块时不发送cookie,除非添加了
crossorigin=“use credentials”
- Vaadin只添加了
,而没有添加crossorigin
(这可能被认为是一个bug,因为它们正式支持Safari)crossorigin=“use credentials”
我们通过将Apache配置为不保护捆绑包的路径来解决此问题。您可以共享pom.xml吗?@ollitietavainen我使用的是Gradle,将共享一些相关片段您是否拥有“war”插件?@ollitietavainen是的,
war
插件也可以启用,这一点在原始问题中可能值得一提。
ext{
...
set('vaadinVersion', "14.3.7")
}
dependencies {
...
implementation('com.vaadin:vaadin-spring-boot-starter') {
["com.vaadin.webjar", "org.webjars.bowergithub.insites",
"org.webjars.bowergithub.polymer", "org.webjars.bowergithub.polymerelements",
"org.webjars.bowergithub.vaadin", "org.webjars.bowergithub.webcomponents"]
.forEach { group -> exclude(group: group) }
}
...
}
vaadin {
optimizeBundle = true
pnpmEnable = true
productionMode = true
}