SAPUI5突然出现内部加载资源错误,尽管应用程序中没有任何更改



我在一些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创建事件。

最新更新