Silverstripe TinyMCE在负载均衡器后面崩溃。

时间:2017-01-27 06:37:19

标签: php caching tinymce silverstripe

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缓存,共享数据库,已经缓存了缓存目录并使用CodeDeploy来部署应用程序,因此它应该全部同步。哪些其他存储区域可能导致不同的m时间戳?有没有人成功使用SilverStripe CMS在没有粘性会话的负载均衡器后面使用?

1 个答案:

答案 0 :(得分:3)

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

之后,进行完全冲洗并再试一次?

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

我会看看我是否可以挖掘基于md5的,否则可以解决你的问题。

*修改

在这里,尝试在项目中的某处创建此项,并将以下内容添加到_config.php Requirements::set_backend(new MysiteRequirementsBackend()); https://gist.github.com/Firesphere/794dc0b5a8508cd4c192a1fc88271bbf

当我们遇到同样的问题时,实际工作是由我的一位同事完成的。