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在没有粘性会话的负载均衡器后面使用?
答案 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
当我们遇到同样的问题时,实际工作是由我的一位同事完成的。