Bootstrapping ushell_abap 以实现变体持久性

Bootstrapping ushell_abap for variant persistence

我有一个 FIORI 应用程序(从启动板启动),我在其中使用统一 shell 来保留变体。

在我的 index.html 中,我先 bootstrap ushell_abap 然后 ui bootstrap 这样

<script id="sap-ushell-bootstrap" src="https://sapui5.hana.ondemand.com/1.90.0/resources/sap/ushell_abap/bootstrap/abap.js"></script>

<script id="sap-ui-bootstrap" src="https://sapui5.hana.ondemand.com/1.90.0/resources/sap-ui-core.js"
    data-sap-ui-libs="sap.ushell, sap.collaboration, sap.m, sap.ui.layout, sap.ui.ux3"
    data-sap-ui-theme="sap_belize" 
    data-sap-ui-resourceroots='{"cvg.wallapp": "./"}' 
    data-sap-ui-compatVersion="edge" 
    data-sap-ui-async="true" 
    data-sap-ui-frameOptions="trusted"
    data-sap-ui-bindingSyntax="complex"
    data-sap-ui-oninit="module:sap/ui/core/ComponentSupport">
</script>

我的应用程序运行良好,包括在本地主机中 运行 时的变体持久性。

我现在将应用程序部署到我的 Fiori 服务器,但 bootstrapping 过程崩溃了。 它完全无法加载我的主题和相关样式(仅使用伯利兹主题没有自定义样式)。

在控制台中出现以下错误:

includeStylesheet-dbg.js:77 GET https://xxxx:yyyy/sap/public/bc/themes/~client-810/~cache-Bo-MdJE9H9k-CMXXsBrbgsL9ZXQ/UI5/sap/suite/ui/commons/themes/Fiori_LP_Home_Theme/library.css net::ERR_ABORTED 404 (未找到)

找不到一个或多个参数。 - sap.ui.core.theming.Parameters

一旦我删除了 ushell_abap 的 bootstrapping,一切正常(当然除了持续存在的变体)。

我已用完 google 搜索并通读了此处的 ushell 文档 https://sapui5.hana.ondemand.com/sdk/#/api/sap.ushell

有人知道为什么在 truing 使用 ushell_abap 时 bootstrapping 失败吗?

我认为您错过了启动板的一个关键方面。

“从启动板启动”可能意味着:

  1. 它正在打开一个新选项卡 - 独立 -> 无需在问题中提及启动板。
  2. 留在同一个选项卡中 - standard/desired 设置。

如果 (1) 并且您尝试在 1.90.0 应用中加载启动板主题。确保 ui5 版本完全匹配。

“找不到参数”可能表明您的主题是为较旧的 UI5 版本创建的。

可能的解决方案:

  • 您可以生成一个主题,匹配独立的 ui5 版本,将其上传到自己的 BSP 中。
  • 错误可以忽略,可能有一些 ui-故障。

在任何情况下,404 错误还表明您首先没有link主题正确。


如果 (2),则永远不会调用您的 index.html。 UI5 是从 component.js 开始的。因此,您在那里的所有自举都不算数。

在这种情况下index.html只是本地开发的游乐场。

对于shell,这已经到位了。我不确定你为什么要重新加载它。

这里的主要问题是该应用程序使用的 css 库版本与 bootstrap 库版本不同,这导致了错误(在这种情况下,核心在 css 核心的旧 css 库中没有样式。

如果按照 Benedikt Kromer 的解释,您的应用程序设置为独立应用程序并且您 bootstrap 到 index.html 中的特定 sapui5 版本,您可以强制该应用程序使用相同的版本css 库,方法是将样式应用于主应用程序初始化时的核心。

我刚刚在初始化中添加了:

sap.ui.getCore().applyTheme("sap_belize");

这迫使应用加载 css 与我以前 bootstrap 相同版本的库。

您可以通过查看开发者工具中的网络选项卡来查看。