一尘不染

Django管理中的微小MCE弹出窗口为空白

django

我已经在django管理员中使用tinyMCE,但是所有弹出窗口都是空白的(例如,编辑HTML,添加图像)

弹出html页面的路径都在正确的位置

http://thatch.media/js/tiny_mce/themes/advanced/source_editor.htm?mce_rdomain=thatch

整个js文件夹的权限设置为777

这是我的模特

class Page(models.Model):
    title = models.CharField(max_length=200)
    ...

    class Admin:
        js = ('js/tiny_mce/tiny_mce.js', 'js/textareas.js')

有任何想法吗?


阅读 679

收藏
2020-04-03

共1个答案

一尘不染

我也遇到了这个问题,使用Amazon S3存储桶来存储包括TinyMCE javascript在内的静态媒体。

更明确地说-静态媒体必须位于主站点的子域中。因此,如果你的网站在foo.bar.com上运行-你的静态媒体必须在诸如static.foo.bar.com之类的文件上-请注意,static.bar.com和static-foo.bar.com不会好的。(如果你的网站位于bar.com上,则可以使用static.bar.com。)

因此,一旦将静态媒体从子域中送出,则需要在javascript中的两个位置设置document.domain:

1)在tiny_mce_popup.js中

2)首先在tiny_mce.js中,或者替代地,在tiny_mce.init()调用发生之前的某个脚本标记中的主页呈现的HTML中。(我发现黑客入侵tiny_mce.js并将其重新上传到S3更为方便,而不是搞乱django-tinymce的小部件渲染。)

你需要在两个地方都将document.domain设置为MAIN SITE的域:因此,对于在foo.bar.com上具有静态媒体在static.foo.bar.com上的站点,你将需要将document.domain =“ foo.bar.com

这样可以防止浏览器出现任何安全异常,并且现在一切正常。

2020-04-03