SAP Business Application Studio中XML视图布局编辑器报错求助
我在SAP BAS中有一个Fiori项目,包含2个视图,项目结构如下:
Project1 -> webapp -> view -> View1.view.xml -> View2.view.xml
Index.html中包含:
data-sap-ui-resourceroots='{ "project1": "./" }'
View1中通过以下代码嵌套View2:
<mvc:XMLView viewName="project1.view.View2/>
应用运行时能正常显示View1中的View2,但打开View1的布局编辑器时出现以下错误:
For scenarios involving fragments and nested views, your project must contain an index.html like or a localIndex.html file containing the data-sap-resourceroots attribute. Currently, your project does not contain such files.
resource project1/view/View2.view.xml could not be loaded from /di/home/user/projects/project1/webapp/./view/View2.view.xml. Check for 'file not found' or parse errors. Reason:
多次修改View2的链接,但始终报错,请问问题出在哪里?
1. XML语法错误导致解析异常
你编写的View1嵌套代码存在语法错误:viewName="project1.view.View2/>缺少了闭合的双引号,正确写法应为:
<mvc:XMLView viewName="project1.view.View2"/>
运行时浏览器的XML解析器有一定容错性,能忽略这个错误正常渲染,但布局编辑器的解析逻辑更严格,会因此无法正确识别视图路径。
2. 布局编辑器与运行时的资源路径解析差异
SAP BAS布局编辑器的资源加载逻辑和应用运行时不同:
- 运行时
index.html位于webapp目录下,./指向当前webapp目录,因此能正确定位到view/View2.view.xml - 布局编辑器默认从项目根目录(Project1)开始解析路径,导致
./被解析为项目根目录而非webapp,最终找不到目标文件
对应解决步骤:
- 先修正View1中嵌套代码的语法错误,补上缺失的双引号
- 调整
index.html中的资源根路径配置,改为明确指向webapp目录:data-sap-ui-resourceroots='{ "project1": "./webapp/" }' - 或者在项目根目录创建
localIndex.html文件,复制webapp/index.html的内容,布局编辑器会优先读取该文件,从而正确识别资源根路径
内容的提问来源于stack exchange,提问作者Péter Bajusz

