Plone富文本磁贴尝试为TinyMCE加载不正确的js URL

时间:2013-01-24 19:43:37

标签: tinymce plone

  • Plone 4.2.1.1
  • plone.tiles 1.2
  • plone.app.tiles 1.0.1
  • plone.app.blocks 1.0
  • plone.app.drafts 1.0a2
  • Products.TinyMCE 1.2.15

我有一个Plone网站,页面上有两个富文本图块,在Using tiles to provide more flexible Plone layouts之后创建。

问题在于,在编辑图块时,TinyMCE将无法加载。

在网络标签上的Firebug中,我看到了大量的404,看起来像这样:

http://example.com/en/front-page/@@edit-tile//plugins/pagebreak/editor_plugin.js

相比之下,我知道正确的URL应如下所示:

http://example.com/portal_javascripts/MyTheme/plugins/xhtmlxtras/editor_plugin.js

当我在开发模式下设置我的portal_javascripts时,它可以工作,但是当我关闭开发模式时,那就是我看到这个问题的时候。

显然这是由于某种javascript冲突,但我不知道在哪里寻找它。

我真的需要解决这个问题,所以非常感谢任何帮助!


其他信息:

当portal_javascripts关闭了开发模式时,此行中的条件永远不会成立:https://github.com/plone/Products.TinyMCE/blob/1.2.x/Products/TinyMCE/skins/tinymce/tiny_mce_src.js#L47

那是因为tiny_mce.js文件与其他文件合并,名称是随机的,因此按名称查找将始终失败。因此,baseURL对象的tinymce属性不会在init中设置。 相反,baseURL最终会在此处设置: https://github.com/plone/Products.TinyMCE/blob/1.2.x/Products/TinyMCE/skins/tinymce/tiny_mce_src.js#L8397

这是http://example.com/my-page/@@edit-tile/使用网址baseURL的地方。

我通过关闭portal_javascripts中的合并和缓存来验证这一点,但是关闭了开发模式。然后它可以工作,因为它按名称找到tiny_mce.js

另外,我发现当它失败时,所有TinyMCE的插件都被添加为iframe头部中的显式<script>元素(带有@@edit-tile URL,无法加载)。相比之下,当它工作时,所有插件都加载到这里: https://github.com/plone/Products.TinyMCE/blob/1.2.x/Products/TinyMCE/skins/tinymce/tiny_mce_src.js#L8458

IOW,它们不会作为<script>元素明确添加到iframe中。

(如果我不清楚,当我提到iframe时,我说的是瓷砖的编辑叠加层,而不是TinyMCE的。在iframe中有一个iframe ....)

0 个答案:

没有答案