CKEditor Django中的YouTube插件返回404

时间:2018-01-16 18:50:10

标签: python django youtube ckeditor django-ckeditor

我一直在尝试在CKEditor中为项目安装YouTube插件,但我失败了,我无法弄清楚原因。

我已按以下方式配置了我的settings.py(剥离了与此问题无关的代码:

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar_Collective':[
            ['Source', '-', 'Bold', 'Italic'],

            # ...

            {
                'name': 'links',
                'items': ['Link', 'Unlink']
            },
            {
                'name': 'media',
                'items': ['ImageButton', 'Youtube']
            },

            # ...

            {'name': 'tools', 'items': ['Maximize']},
            ],
        'toolbar':'Collective',
        'width': '100%',
        'height': 400,
        'tabSpaces': 4,
        'extraPlugins': ','.join([
        ]),
    }
}

目前我已经将'extraPlugins'配置留空了,因为我在那里写'youtube'作为soons:

'extraPlugins': ','.join([
  'youtube',
 ]),

CKEditor失败,我的终端上显示以下内容:

[16/Jan/2018 18:31:16] "GET /post/new/ HTTP/1.1" 200 7239
[16/Jan/2018 18:31:16] "GET /static/ckeditor/ckeditor-init.js HTTP/1.1" 304 0
[16/Jan/2018 18:31:16] "GET /static/css/main.css HTTP/1.1" 304 0
[16/Jan/2018 18:31:16] "GET /static/ckeditor/ckeditor/ckeditor.js HTTP/1.1" 304 0
[16/Jan/2018 18:31:16] "GET /static/js/script.js HTTP/1.1" 304 0
[16/Jan/2018 18:31:16] "GET /static/ckeditor/ckeditor/plugins/youtube/plugin.js?t=H4PG HTTP/1.1" 404 1749
Performing system checks...

您可以看到其他错误代码,即使是关于页面css也是如此。我不知道为什么他们在那里,但无论编辑如何,他们都在那里,编辑器无论如何都能运作。真正的问题在于YouTube插件(这是我目前计划安装的唯一插件)。

我还尝试使用文档中提到的RichTextUploadingField配置我的models.py文件,并且我已完成以下操作:

class Post(models.Model):
    # ...
    text = RichTextField(
        config_name='default',
        extra_plugins=['youtube'],
        external_plugin_resources=[(
            'Youtube',
            '/static/ckeditor/ckeditor/plugins/youtube/',
            'plugin.js',
        )],
    )
    #...

这也没有结果。我在forms.py中也做了同样的事情,并且由于settings.py中的这些编辑都没有任何结果,我回到了之前的配置,只编辑了settings.py。

我进行了广泛的搜索,我发现了大多数矛盾或不完整的信息。那,或者我不知道如何处理这些信息,并且做错了什么。

我错过了什么?

2 个答案:

答案 0 :(得分:0)

您是否已将plugin文件夹复制到静态目录中? 如果没有,请先从此链接下载“ youtube”插件文件夹:

https://download.ckeditor.com/youtube/releases/youtube_2.1.14.zip

解压缩后,将其粘贴到django项目的以下目录中

/ static / ckeditor / ckeditor / plugins

现在尝试运行此操作,因为ckeditor正在查找文件“ plugin.js”,以便运行一些GET请求,在您的情况下该请求不可用,这就是显示404的原因

答案 1 :(得分:0)

在开发环境中,static_root 不用于提供静态文件。因此,如果您想开发 youtube 插件,那么在 staticfiles_dir 文件夹内,您必须创建“ckeditor/ckeditor/plugins”文件夹结构,并将 youtube 插件的提取文件夹粘贴到 plugins 文件夹内。

在生产中将使用 static_root 文件夹。