当前位置: 首页 > 知识库问答 >
问题:

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

何兴学
2023-03-14

我最近将我的应用程序切换到Vaadin 14原生NPM(非兼容性模式)和生产模式。Vaadin版本为14.3.7。这是一个Spring Boot应用程序,使用Gradle打包为可执行的. war文件。我正在使用Vaadin Gradle插件。

事情工作正常,除了在Safari(iOSMac)的应用程序是不可用的。以下错误可以在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'
}
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
}

共有1个答案

鱼渝
2023-03-14

结果证明,这是由以下因素共同造成的:

  • 该应用程序前面有一个Apache服务器,该服务器在未登录时重定向到SSO。
  • Vaadin将包作为ES6模块加载。
  • Safari在加载ES6模块时不发送cookie,除非添加了Crossoriation="use-凭据"
  • Vaadin只添加了交叉点,而不是交叉点="use-凭据"(这可以被认为是一个错误,因为他们正式支持Safari)。

有关详细信息,请参阅https://jakearchibald.com/2017/es-modules-in-browsers/, https://stackoverflow.com/a/52559612/775138还有约翰·梅肯的评论。

我们通过将Apache配置为不保护捆绑包的路径来解决这个问题。

 类似资料:
  • 我无法在Appium检视器中记录移动Safari的Web应用程序的测试。我已经启动了服务器并打开了Appium检查员。当我点击记录按钮时,它会显示一个网页,但是我不能选择网页中的元素。我已经附上了截图:

  • 前言:我是一个高级Vaadin开发人员(我已经使用了6,7,现在我所有的项目都迁移到了Vaadin 8)。 我开始研究瓦丁10/Flow,但我发现自己陷入了困境。 我真正纠结的是“项目”本身。我越深入,就越觉得这个框架正在进入一个基于css/html的框架,这需要比java更多的css/html知识。我的意思是,如果你不完全知道css和html是如何工作的,你就不能再轻松地使用这个框架了。 问题是

  • Vaadin 7中的和组件之间有什么区别? 我应该使用哪种,何时使用?

  • 我在浏览器上运行该应用程序时出现错误。 错误是 我的配置 离子型: Ionic CLI : 6.13.1 Ionic框架:@ Ionic/angular 6 . 1 . 13 @ angular-dev kit/build-angular:14 . 0 . 5 @ angular-dev kit/schematics:14 . 0 . 5 @ angular/CLI:14 . 0 . 5 @ Io

  • 有谁能向我解释一下Vaadin的服务器端Java组件是如何工作的吗?它们似乎在服务器端状态和称为“widgetset”的客户端javascript引擎之间进行同步。 有没有人对Vaadin的内部结构有更详细的解释?我一直试图向我的同事们解释这件事,却不知该说些什么。

  • 是否有可能强制Vaadin8网格从后端热切地加载所有行?目前,它只显示屏幕上可见的记录,并在网格滚动时获取下一行。