Gradle 瓦丁14生产模式和狩猎问题

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上导

我最近将我的应用程序切换到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上导致此错误,但我认为默认情况下,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
    ,而没有添加
    crossorigin=“use credentials”
    (这可能被认为是一个bug,因为它们正式支持Safari)
有关更多信息,请参阅,以及John Meinken的评论


我们通过将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
}