PHP-Silverstripe TinyMCE在负载均衡器后崩溃.

I’ve been struggling to put SilverStripe behind a load balancer,并且我一直在解决与实例同步和使用共享存储的多个问题,并且几乎使其稳定,但是我发现了另一个破坏CMS的问题.

特别是当您尝试在TinyMCE编辑器中的CMS中添加链接时,当弹出屏幕显示选择页面/文件时,JavaScript会引发异常,tinyMCE.activeEditor返回null.

我已经在两个服务器之间同步了缓存目录silverstripe-cache,但是m = timestamp之间只有几秒钟的差异,但是我猜想这足以导致tiny_mce_gzip.php被再次加载.

我有一个用于会话存储的共享redis缓存,共享的db,已同步缓存目录并使用CodeDeploy部署该应用程序,因此它应该全部同步.还有哪些其他存储区域可能导致不同的m时间戳?是否有人成功将SilverStripe CMS用于负载均衡器的后面而不会出现粘滞会话?

解决方法:

您可以禁用HTMLEditor的gzip版本.我以前见过这种情况.尝试将以下内容添加到您的config / config.yml中:

HTMLEditorField:
  use_gzip:否

之后,进行完全冲洗并重试?

另一个选择是JavaScript无法正确同步.为此,您需要更改?m = 12345的生成方式.默认情况下,它是基于时间戳构建的.

我将看看是否可以挖掘基于md5的服务器,否则可能会解决您的问题.

*编辑

可以,尝试在您的项目中的某个地方创建此文件,然后将以下内容添加到_config.php中

需求:: set_backend(new MysiteRequirementsBackend());

https://gist.github.com/Firesphere/794dc0b5a8508cd4c192a1fc88271bbf

当我们遇到同一问题时,实际工作是由我的一位同事进行的.

上一篇:记一次webpack打包的问题


下一篇:记录自己常用的 git命令