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
当我们遇到同一问题时,实际工作是由我的一位同事进行的.