后台ZK和损坏的classWebResources

2020-09-10 16:37发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好社区。 我们刚刚将Back...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区。

我们刚刚将Backoffice产品座舱添加到了系统中,以摆脱旧产品座舱。 但是,在部署时,我们注意到该接口已损坏,并且由于在一个环境中的浏览器中存在JS和CSS问题,因此在加载组件时遇到了问题。 请注意,我们有三种环境,DEV,QA和PROD。 在质量检查中,我们没有在DEV中遇到此问题,因此执行重置所有操作或重新启动服务器都没有关系,因为问题似乎是Backoffice的用户已在浏览器中缓存了资源。

如果您重置浏览器中的缓存,则Backoffice可以正常工作而不会出现任何问题。 作为开发人员,我们对此没有任何问题,但是Backoffice的用户不喜欢这种不便之处,并且忘记了这种事情会发生。 由于某种原因,他们的浏览器(无论是Firefox,IE还是Chrome)都弄乱了资源缓存,并且不了解何时将新内容添加到Backoffice。

我尝试搜索此ZK问题。 因为我认为ZK不仅仅是Backoffice应用程序的问题,所以如果我做这个假设不正确,请更正我。 我发现的是:

https: //www.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml/The_Library_Properties/org.zkoss.web.classWebResource.cache#cite_note-0

这听起来像可以解决我们因Backoffice中的Web资源损坏而不断发生但会影响性能的问题。 尽管目前我除了禁用资源缓存外没有其他选择,因为令人烦恼的是我们不能保证发行版本的质量,因为我们的用户浏览器可能会破坏我们看不到的本​​地网络资源,并且 没有办法自动解决这些问题,以提供良好的用户体验。

不幸的是,我无法指定何时以及如何发生这种情况,因为服务器上的所有内容看起来都是正确的,我们还没有找到一种方法来重新创建它,因为它可以在我的浏览器中工作,但在用户X中却无法,然后他们查看了 同事,也可以使用由IT运营团队自动更新的Internet Explorer浏览器版本的同一家公司进行工作。 我们知道的唯一解决方案是重置浏览器中的缓存,然后一切正常,好像什么都没发生。

打开开发工具时,我会附上浏览器状态的图像:

替代文本

(196.2 kB)
3条回答
我是小鹏鹏啊
2020-09-10 16:44

我现在对此有更多了解。 默认情况下,ZK使用以下设置来对所有JavaScript进行哈希处理:org.zkoss.zk.ui.http.SimpleWebApp。 以下方法是ZK创建的哈希的基础:org.zkoss.zk.ui.impl.AbstractWebApp#getBuild。

Hybris提供了两个ZK库jar。 一个"补丁"和一个标准ZK。 两者都提供这样的课程。 我不知道哪个加载。 以任何方式。 在Hybris的修补版本中,它读取了XXX/bin/ext-cockpit/cockpit/lib/zk-3.6.4-hybris-patched.jar!/metainfo/zk/build

它将文件中的内容用作资源哈希的基础。 根据ZK文档,如果您希望始终在服务器上重新启动,请让客户端重新加载在每次部署中必须拥有的所有Web资源,然后更改此哈希数,以使浏览器收到资源更改的通知。 对我来说,它不会改变所有的蚂蚁。 因此,资源会跨部署进行缓存。

我还没有真正想出更多的方法,但是如果我可以使用自己的构建方法扩展上述类,该方法将在每次构建或部署时重新计算资源哈希,那么一切将开始工作,我们的用户将永远不必 再次面对这个问题。

一周热门 更多>