如何为开发和生产环境的资源(css 和图像)使用相同的路径前缀?

How to use the same path prefix for resources (css and images) for development and production environment?

我正在 link访问使用 UI5 制作的应用程序中的资源,例如 css 或图像 文件,但我遇到了问题。

通常,路径例如:

return "css/style1.css"; // for a stylesheet inside the folder css
return "img/image.jpg"; // for a image inside the folder img

并且应用程序部署后它工作正常但是当运行 SAP Web IDE 两者都找不到时 导致 404 错误。

所以对于 运行ning in SAP Web IDE,显示样式和图像的路径是:

return "../../../../../webapp/css/style1.css"; #for a stylesheet inside folder css
return "../../../../../webapp/img/image.jpg"; #for a image inside folder img

那是 工作 运行 SAP Web IDE,但 它不干净。而且我也不确定它在部署后是否可以工作。

是否可以使用标准 link 和 运行 带有 SAP Web IDE 的应用程序在部署前查看结果?

有一个解决方案可以为此创建一个模型: 在 model.js:

createImageRoot: function() {
  var oModel = new JSONModel({
    path: sap.ui.require.toUrl("the.namespace") // available since 1.58. Otherwise, use jQuery.sap.getModulePath instead.
  });
  oModel.setDefaultBindingMode("OneWay");
  return oModel;
},

在Component.js中,在init方法中添加

this.setModel(models.createImageRoot(), "imageRoot");

然后例如:

return this.getView().getModel("imageRoot").getProperty("/path") + "img/image.jpg"