为了解决客户端缓存未被更新的问题,可以在webapp/manifest.json文件中添加一个version属性,每次应用部署时更新该属性的值。例如:
"sap.app": { ... "applicationVersion": { "version": "1.0.1" } }
然后在应用程序代码中使用新的版本号来加载静态文件,例如:
sap.ui.getCore().attachInit(function() { var oResourceModel = new sap.ui.model.resource.ResourceModel({ bundleName: "myApp.i18n.i18n" }); sap.ui.getCore().setModel(oResourceModel, "i18n"); sap.ui.xmlview({ viewName: "myApp.view.App", async: true }).placeAt("content"); //更新缓存 sap.ui.require(["sap/ui/core/routing/Router"], function(Router) { new Router({ async: true, viewPath: "myApp.view", controlId: "app", viewType: "XML", targetAggregation: "pages" }).initialize(); }); });
在代码中,使用require函数加载的Router类在初始化时会触发缓存更新。这样,在部署新版本后访问应用程序时,会自动从服务器获取最新的文件。