I've been struggling to put SilverStripe behind a load balancer我一直在解决多个与同步实例和使用共享存储有关的问题,并且几乎已经稳定下来,但是我发现了另一个破坏 CMS 的问题。
特别是当您尝试在 TinyMCE 编辑器的 CMS 中添加链接时,当弹出屏幕显示选择页面/文件时,JavaScript 抛出一个异常,tinyMCE.activeEditor
返回 空
。
我已经在两台服务器之间同步了缓存目录 silverstripe-cache
并且 m=timestamp
之间仍然存在只有几秒钟的差异,但是我我猜这足以导致 tiny_mce_gzip.php
被迫再次加载。
我有一个用于 session 存储的共享 redis 缓存,共享数据库,已同步缓存目录并使用 CodeDeploy
部署应用程序,因此它应该全部同步。还有哪些其他存储区域可能导致不同的 m
时间戳?有没有人在没有粘性 session 的情况下成功地将 SilverStripe CMS 用于负载均衡器?
最佳答案
您可以禁用 HTMLEditor 的 gzip 版本。我以前见过这种情况。尝试将以下内容添加到您的 config/config.yml
:
HTML 编辑器字段:
使用_gzip:错误
在那之后,做一个完全冲洗然后再试一次?
另一个选项是 javascript 没有正确同步。为此,您需要更改 ?m=12345
的构建方式。默认情况下,它是基于时间戳构建的。
我看看能不能找到基于 md5 的,否则可能会解决您的问题。
*编辑
开始吧,尝试在项目的某处创建它,并将以下内容添加到 _config.php
Requirements::set_backend(new MysiteRequirementsBackend());
https://gist.github.com/Firesphere/794dc0b5a8508cd4c192a1fc88271bbf
当我们遇到同样的问题时,实际工作是由我的一位同事完成的。
关于php - Silverstripe TinyMCE 在负载均衡器后面崩溃。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41888196/