我在某些 SAP Cloud Foundry UI5 应用程序中使用
sap.ui.comp.smarttable.SmartTable
控件。
大约一周以来,表格控件无法再使用当前版本 (1.74.1) 进行渲染,因为以下 XHR 加载失败:
https://sapui5.hana.ondemand.com/resources/sap/ui/table/TableExtension.js
如果我强制使用旧版本 - 例如“1.73.1” - 那么它可以正常工作并且可以找到上述资源。
我不知道的“智能桌子”概念是否发生了变化,或者这是图书馆本身的问题?
我检查了 UI5 的更改日志,但没有看到其中提到的任何内容。
5e3848d
中的更改表明文件 TableExtension.js
已重命名为 ExtensionBase.js
并移至新的 extensions
目录。所以 sap/ui/table/extensions/ExtensionBase.js
应该已被获取。但重构并不是问题的真正原因。 根据 Andreas Kunz 的说法,UI5 在 CDN 中存在缓存失效问题。您的浏览器可能还会误导性地报告所请求的资源已“被 CORS 策略阻止”,但这仅仅是因为 404 响应本身没有“Access-Control-Allow-Origin”标头。该问题与 CORS 不相关。
此类缓存问题或 UI5 内部更改影响您的应用程序的事实表明 您的应用程序正在使用 CDN URL 的默认版本引导 UI5。 “默认版本”仅用于教程或测试目的。
分辨率必须在 URL 中指定 UI5 版本,如主题 从内容交付网络引导的变体中所述。
例如,基于可用版本的SAPUI5*(或 OpenUI5)和 <x.y.z>
推荐:具有补丁级独立又名。 《长青版》:
<head>
<!-- ... -->
<script id="sap-ui-bootstrap"
src="https://sdk.openui5.org/<x.y>/resources/sap-ui-core.js"
data-sap-ui-async="true"
data-sap-ui-onInit="module:sap/ui/core/ComponentSupport"
data-sap-ui-resourceRoots='{ "my.app": "./" }'
data-sap-ui-...="..."
></script>
<!-- No inline script here! Avoid sap.ui.getCore().attachInit -->
</head>
<body id="content" class="sapUiBody">
<div data-sap-ui-component
data-id="myRootComponentContainer"
data-name="my.app"
data-height="100%"
data-settings='{ "id": "myRootComponent" }'
data-...="..."
></div>
</body>
<x.y.z>
<script id="sap-ui-bootstrap"
src="https://ui5.sap.com/<x.y.z>/resources/sap-ui-core.js"
data-sap-ui-...="..."
></script>
已弃用的 API 将在下一个 UI5 主要版本中被删除。 自动“无旧版 UI5”。
* 使用 SAPUI5 CDN 时,请查看 SAP 说明 2943781 - 是否允许将 SAP 的内容交付网络用于本地系统?
其他情况如果问题仍然可以重现,请使用 CA-UI5-DLV 作为组件从
SAP Suppot 创建事件。