我目前正在尝试了解UI5库,并出于测试目的,使用Full-Stack-IDE中提供的模板创建了一个库项目。
根据我在各种教程中看到的内容,现在应该将应用程序部署到SCP,然后在要使用它的应用程序中声明其存在。为此,您可以在neo-app.json中创建一个条目,如下所示:
"routes": [
...,
{
"path": "/resources/my/custom",
"target": {
"type": "application",
"name": "testlibrary",
"entryPath": "/"
},
"description": "Utility library"
}
]
并在manifest.json中如下所示:
"dependencies": {
"libs": {
...,
"my.custom.testlibrary": {}
}
},
但是,当我这样做时,我的应用程序会尝试在以下URL下查找该库:https://openui5.hana.ondemand.com/1.52.5/resources/,而不是在我部署该应用程序的SCP上。我的neo-app.json条目和manifest.json条目之间似乎没有链接。我在这里做什么错了?
答案 0 :(得分:0)
您可以通过右键单击您的项目,然后选择项目>添加对库的引用来添加自定义库。然后选择SAP Cloud Platform作为存储库,并包含您的库。
在path
的{{1}}中产生的route
将是neo-app.json
-这是在SAP Web IDE中运行本地预览所必需的。在将您的消费者应用程序部署到SAP Cloud Platform时,作为构建过程的一部分,该路由将被重写为排除/webapp/resources/my/custom
,即路径将为webapp
,以便在部署时也将正确重定向。使用/resources/my/custom
进行构建对我来说是正常的。
使用上述方法,您无需在客户应用的"@sap/grunt-sapui5-bestpractice-build": "1.3.64"
的每个库中添加data-sap-ui-resourceroots
条目。
答案 1 :(得分:0)
在ui5help Slack频道中找到了答案。问题是我的库需要在resourceroots下的index.html中声明。像这样更改我的neo-app.json:
"routes": [
...,
{
"path": "/webapp/resources/my/custom",
"target": {
"type": "application",
"name": "testlibrary",
"entryPath": "/"
},
"description": "Utility library"
}
]
并将其添加到我的index.html:
data-sap-ui-resourceroots='{
"docgen": "./",
"my.custom.testlibrary": "./resources/my/custom"
}'
解决了该问题。我将继续尝试看看是否必须为每个库执行此操作。