SAP UI5 App加载图片有稳定的解决方案吗?

问题描述 投票:0回答:1

Images 文件夹包含许多图像,如 xxx.png、yyy.png 等

Image src="./images/xxx.png" 在我测试时以及部署到 SCP 后效果非常好。但是,当我将应用程序注册到 Launchpad 并从那里打开它时,同样的方法不起作用。为什么图片无法加载?

我在网络中看到以下内容:

Component.js 正在从

加载

https://xxxxxx-yyyyy.dispatcher.eu3.hana.ondemand.com/sap/fiori/workbox/Component.js?ts=1.0.143 具有 200 状态

但是图像正在尝试从中获取负载

https://xxxxxx-yyyyy.dispatcher.eu3.hana.ondemand.com/images/xxx.png

https://xxxxxx-yyyyy.dispatcher.eu3.hana.ondemand.com/images/yyy.png这会导致404。相反,我应该点击以下网址。

https://xxxxxx-yyyyy.dispatcher.eu3.hana.ondemand.com/images/sap/fiori/workbox/images/xxx.png

我尝试将图像 src 更改为 src="./images/xxx.png" 和 src="/images/yyy.png"。但是,相同的旧 URL 会被点击并导致 404。

为什么会出现这样的情况呢?为什么 component.js 和图像从不同的根加载?我发现很多答案建议使用 jQuery.sap.getModulePath("com.xxx.Component") 但这对我没有任何帮助。它返回给我https://sapui5.hana.ondemand.com/resources/com/xxx/Component,这是没有用的。

sapui5 sap-fiori
1个回答
5
投票

为了从本地项目文件夹结构中检索文件,您需要计算它们的正确路径。这与 FLP 环境相关,因为应用程序在加载时会分配动态路径。

sap.ui.require.toUrl
是一个神奇的功能,应该可以满足你的需要。

该函数需要一个路径作为输入参数,并将其转换为 FLP 内的工作路径。请参阅方法说明

示例

<!-- Given:
  data-sap-ui-resource-roots='{ "your.namespace": "./" }'
  '/imageUri' model value: "your/namespace/images/xyz.png"
-->
<Image src="{
  path: '/imageUri',
  formatter: 'sap.ui.require.toUrl'
}" />

sap.ui.require.toUrl
正在取代自 UI5 1.58 以来已弃用的
jQuery.sap.getModulePath

© www.soinside.com 2019 - 2024. All rights reserved.