我在一些SAP Cloud Foundry UI5应用程序中使用sap.ui.comp.smarttable.SmartTable
控件。
大约一周后,由于以下XHR加载失败,表控件无法再使用当前版本(1.74.1(进行渲染:
https://sapui5.hana.ondemand.com/resources/sap/ui/table/TableExtension.js
如果我强制使用较旧版本(例如"1.73.1"(,则它工作正常,并且可以找到上述资源。
我不知道"智能表"的概念是否发生了变化,或者这是库本身的问题?
我查看了UI5的更改日志,但没有看到任何提到的内容。
原因
提交5e3848d
的更改(自UI5 core 1.74.0以来可用(显示文件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。";默认版本">仅用于教程或测试目的。
分辨率
在生产系统中运行的应用程序
在生产系统上运行并同时从标准CDN外部使用UI5资源的应用程序,必须在URL中指定UI5版本,如主题从内容交付网络引导的变体中所述。
例如,基于可用的SAPUI5*或CDN中的OpenUI5版本和引用主要的<x.y.z>
次要补丁版本分别为:
-
推荐:具有补丁级别独立的aka"常青版本";(
<x.y>
(:<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>
如果应用程序继续依赖";默认版本";(URL中没有特定的UI5版本(,因为弃用的API将在下一个UI5主要版本(又名(中删除"无遗留UI5";自动地
*使用SAPUI5 CDN时,请查看SAP Note 2943781-是否允许在内部部署系统中使用SAP的内容交付网络
在其他情况下
查看问题是否在以下时间后得到解决:
- 清除浏览器缓存(例如,选择清空缓存和硬重新加载(
- 使用其他浏览器
- 选择不同的VPN节点(如果适用(
如果问题仍然可以重现,请使用CA-UI5-DLV作为组件从SAP Suppot创建事件。