我已将项目的OpenUI5从1.42.7更新为1.60.12(LTS)
如果我尝试使用新版本运行该应用程序,则出现此错误:
未捕获的错误:无法从资源/sap/ui/core/library.js加载“ sap / ui / core / library.js”:404-未找到**
我的项目的树形结构在resources/openui
路径中包含OpenUI5文件:
在index.html中,我将src
设置为此模式:
<script id="sap-ui-bootstrap"
src="resources/openui/sap-ui-core.js"
data-sap-ui-theme="sap_belize"
data-sap-ui-xx-bindingSyntax="complex"
data-sap-ui-libs="sap.m"
data-sap-ui-preload=""
data-sap-ui-resourceroots='{
"ui5bp": "./",
"model": "./model"
}'
></script>
似乎sap-ui-core.js
的第一个调用正确完成了(来自Webcontent/resources/openui
),但是随后library.js
的调用是由Webcontent/resources/
而不是Webcontent/resources/openui
调用的}。
在1.42版本中,一切正常。
注意:如果我尝试从CDN检索OpenUI5资源,则一切正常...
src="https://openui5.hana.ondemand.com/1.60.12/resources/sap-ui-core.js"
答案 0 :(得分:3)
将UI5资源移动到正下方的resources
文件夹中。
˅ resources ˃openui˅ sap ˃ base ˃ f ˃ m ... ... sap-ui-core.js
根据主题 Bootstrapping: Loading and Initializing - Initialization Process ,UI5默认会尝试从以下路径获取库资源:
库引导文件
/<context-path>/resources/<library-name>/library(-preload).js
路径(在/resources/openui/<library-name>/
之间存在偏差)使得获取库文件与默认设置不兼容。
尽早在index.html中定义一个新的默认基本URL 。例如。通过 global configuration object:
<script>
window["sap-ui-config"] = {
resourceRoots: {
"": "./resources/openui/", // <-- new base URL
"ui5bp": "./",
// ...
},
libs: "sap.ui.core, sap.m",
async: true,
theme: "sap_belize",
compatVersion: "edge",
// ...
};
</script>
<script id="sap-ui-bootstrap" src="resources/openui/sap-ui-core.js"></script>
这也可以解决,""
始终可以作为后备
请注意,空前缀(
""
)将始终匹配,因此可作为任何搜索的后备。 source