我一直在努力将SilverStripe放在负载均衡器后面,我一直在修复实例同步和使用共享存储的多个问题,并几乎使其稳定,但我发现了另一个破坏CMS的问题。
特别是当您尝试在TinyMCE编辑器的CMS中添加链接时,当弹出屏幕显示选择页面/文件时,JavaScript会抛出一个异常,即tinyMCE.activeEditor
返回null
。
我已经在两台服务器之间同步了缓存目录silverstripe-cache
,但m=timestamp
之间仍然只有几秒钟的差异,但我猜这足以导致tiny_mce_gzip.php
被迫再次加载。
我有一个用于会话存储的共享redis缓存,共享数据库,已经同步了缓存目录,并使用CodeDeploy
部署应用程序,所以它应该都是同步的。其他哪些存储区域可能导致m
时间戳不同?有人成功地在没有粘性会话的负载均衡器后面使用了SilverStripe CMS吗?
您可以禁用gzip版本的HTMLEditor。我以前见过这种情况。尝试将以下内容添加到config/config.yml
中:
HTMLEditorField:
use_gzip: false
之后,进行一次彻底的冲洗,然后再试一次?
另一种选择是javascript没有正确同步。为此,您需要更改?m=12345
的构建方式。默认情况下,它是基于时间戳构建的。
我会看看我是否能找到基于md5的,否则可能会解决你的问题。
*编辑
开始吧,试着在项目中的某个地方创建它,并将以下内容添加到_config.php
Requirements::set_backend(new MysiteRequirementsBackend());
https://gist.github.com/Firesphere/794dc0b5a8508cd4c192a1fc88271bbf
实际工作是由我的一位同事完成的,当时我们遇到了同样的问题。